Ik probeer vanuit een bestand met VBA code data uit andere Excel bestanden te halen. Tot nu toe doe ik dit zo:
Dit werkt prima, maar staat niet zo netjes dat dit bestand wordt geopend. Dus ik probeer het bestand op de volgende manier te openen:
Op deze manier wordt het bestand wel geopend, maar is niet zichtbaar voor de gebruiker. Vervolgens wil ik dus alle data uit dat bestand kopieren naar het huidige bestand. Dit lukt mij echter niet:
Weet iemand hoe ik dit toch voor elkaar kan krijgen zonder een loop te gebruiken?
Visual Basic:
1
2
3
4
5
6
7
| OPL = Application.GetOpenFilename _ (FileFilter:="Excel Files (*.xls), *.xls", Title:="Kies het bestand waaruit gekopieerd moet worden") Workbooks.Open Filename:=OPL Workbooks(2).Activate ActiveSheet.Range("A:A", "IV:IV").Copy Destination:=Workbooks(1).Sheets(1).Range("A1") ActiveWorkbook.Close |
Dit werkt prima, maar staat niet zo netjes dat dit bestand wordt geopend. Dus ik probeer het bestand op de volgende manier te openen:
Visual Basic:
1
2
| Set objexcel = CreateObject("EXCEL.APPLICATION") Set nieuw = objexcel.Workbooks.open(Filename:=OPL) |
Op deze manier wordt het bestand wel geopend, maar is niet zichtbaar voor de gebruiker. Vervolgens wil ik dus alle data uit dat bestand kopieren naar het huidige bestand. Dit lukt mij echter niet:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| 'dit werkt: For i = 1 To 200 For j = 1 To 26 ActiveWorkbook.Sheets(1).Cells(i, j) = objexcel.Cells(i, j) Next j Next i 'dit werkt ActiveWorkbook.Sheets(1).Range("A3") = objexcel.Range("A3") 'dit echter niet ActiveWorkbook.Sheets(1).Range("A1:B5") = objexcel.Range("A1:B5") 'dit ook niet objexcel.Range("A1").Copy Destination:=ActiveWorkbook.Sheets(1).Range("A1") 'dit ook niet objexcel.Range("A:A", "IV:IV").Copy Destination:=Workbooks(1).Sheets(1).Range("A1") |
Weet iemand hoe ik dit toch voor elkaar kan krijgen zonder een loop te gebruiken?