Das Format einer Zelle in einem Blatt in einer externen Arbeitsmappe
'path\[filename]sheetname'!cell_reference
ist so zugreifen, wenn Sie eine Variable SourceFileNamePath
enthält den Pfad genannt haben und Dateiname (zB "C:\Temp\Data\Book1.xlsx"
) dann müssen Sie den Dateinamen vom Pfad trennen.
Sie so etwas wie verwenden:
SourceFileNamePath = "C:\Temp\Data\Book1.xlsx" ' or however you set that variable
SourceTab = "Sheet1" ' or however you set that variable
Dim SourceFilePath As String
Dim SourceFileName As String
SourceFilePath = Left(SourceFileNamePath, InStrRev(SourceFileNamePath, Application.PathSeparator))
SourceFileName = Mid(SourceFileNamePath, InStrRev(SourceFileNamePath, Application.PathSeparator) + 1)
Cells(destStartRow, destStartCol).FormulaR1C1 = "='" & SourceFilePath & "[" & SourceFileName & "]" & SourceTab & "'!R" & sourceStartRow & "C" & sourceStartCol
Hinweis: Wenn entweder der Pfad oder der Dateiname keine Einzel Anführungszeichen enthält (zB wenn der Dateiname Sukhbir's test file.xlsx
war), dann wird es entwertet werden müssen (dh jede Anführungszeichen muss durch zwei einfache Anführungszeichen ersetzt werden). Dies kann durch die Verwendung der Replace
Funktion erreicht werden, z.B .:
Cells(destStartRow, destStartCol).FormulaR1C1 = _
"='" & Replace(SourceFilePath, "'", "''") & _
"[" & Replace(SourceFileName, "'", "''") & "]" & _
SourceTab & "'!R" & sourceStartRow & "C" & sourceStartCol
Nur die Datei ** Name ** sollte in Klammern gesetzt werden - z.B. '= 'C: \ Temp \ Daten \ [Book1.xlsx] Blatt2'! R5C10'. (Siehe [diese Frage] (https://stackoverflow.com/q/46162966/6535336) für eine mögliche Art der Einrichtung.) – YowE3K