Rupesin rakentelemaan excel-ohjelmaa, johon olisi tarkoitus hakea tiettyyn Taulukkoon(
Toisesta työkirjasta taulukon tuominen VBA:lla
StressMaker
61404
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 6
Vanhimmat
Jos työkirja on suljettu esim.
='C:\Excel\[Suljettu.xls]Taul1'!B1
jos taas avoinna niin
=[Suljettu.xls]Taul1!B1
Tuolla ilmeisesti onnistuu vain yhden solun hakeminen..?
Mutta entä jos tarkoitus on hakea kaikki solut toisen työkirjan taulukosta(ts. koko taulukko). Ja mielelläni kirjoittaisin sen VBA-editorilla, johon olen jo tehnyt koodinpätkän mikä kysyy avattavan avattavan tiedoston(merkkijonomuuttuja Tiedostonimi).
Periaatteessa on aivan sama kopioidaanko ulkopuolisen taulukon tiedot johonkin jo olemassaolevaan tauluun vaiko tuodaanko se uutena taulukkona.
Niinhän siinä lukikin, että VBA
Sub Hae()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Workbooks.Open Filename:="D:\Ammattitutkinto\Excel\Suljettu.xls"
Range("A1:D7").Copy
ActiveWindow.Close
Worksheets("Taul1").Activate
Range("A1").Select
ActiveSheet.Paste
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Range("A1").Select
End Sub
Kyllä toi eka tapakin toimii.Se on vähän pitkä juttu selittää...
Lyhyesti
nimeä suljetussa työkirjassa kopioitava alue A1:D7 esim. "Tiedot"
Kalle Ville Mikko
tammikuu 100 1000 10000
helmikuu 200 2000 20000
maaliskuu 300 3000 30000
huhtikuu 400 4000 40000
toukokuu 500 5000 50000
kesäkuu 600 6000 60000
ja kirjoita soluun A1 kaava (muuta polku)
='D:\Excel\[Suljettu.xls]Taul1'!tiedot ja kopioi se soluihin A1:D7 niin soluihin ilmestyy suljetun työkirjan tiedot. Jos nyt muutat arvoja suljetussa työkirjassa ne päivittyvät myös avoinna olevaan taulukkoon.
mutta VBA koodiahan olitkin vailla...
Sub Kopioi()
Dim Kohde As Workbook
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set Kohde = Workbooks.Open("D:\Ammattitutkinto\Excel\Suljettu.xls")
Range("A:AA").Copy Destination:=Worksheets("Taul1").Range("A1")
Kohde.Close
Application.DisplayAlerts = False
Application.ScreenUpdating = False
End Sub
Kiitoksia vain näistä vinkeistä, enköhän näillä saa homman toimimaan.