Besser wäre da eine ADODB.Connection
Mit einem Excel4Macroaufruf wirst du nicht wirklich glücklich.
OK, kannst ja wiederholen, wie im Beispiel, nur
Es wird immer ein Wert zurückgegeben, eben auch <0> für Wert/Ergebnis = 0 oder leer
Willst du eine Schleife über 16384 Aufrufe, dann kannst du auch eine ganze Zeile erfassen :O
Sub TestIt()
Dim ZielZeile As Long, QuellZeile As Long
Dim ZielSpalte As Long, Quellspalte As Long
Dim Pfad As String, Quelle As String, Tabelle As String, Bezug As String
Dim varElm As Variant
ZielZeile = 20: QuellZeile = 20
ZielSpalte = 1: Quellspalte = 1
'TestPfad anpassen! ***********************************************************
Pfad = "E:\Temp\": Quelle = "Flexible_Budget_2016 (4).xlsx": Tabelle = "900101"
'in die aktuelle Mappe, aktuelle Tabelle
With ThisWorkbook.ActiveSheet
Do
varElm = _
GetValue(Pfad, Quelle, Tabelle, .Cells(QuellZeile, Quellspalte).Address(0, 0))
If varElm <> 0 Then
.Cells(ZielZeile, ZielSpalte).Value = varElm
Quellspalte = Quellspalte + 1
ZielSpalte = ZielSpalte + 1
Else
Exit Do
End If
Loop
End With
End Sub
|