あなたはSourceFileNamePath
パスを含むという変数を持っている場合は、外部のブック内のシートのセルにアクセスするためのフォーマットがそう
'path\[filename]sheetname'!cell_reference
ですファイル名(例:"C:\Temp\Data\Book1.xlsx"
)の場合は、ファイル名をパスから区切る必要があります。
次のようなものを使用できます。パスまたはファイル名のいずれかが、任意の単一引用符が含まれている場合(ファイル名がSukhbir's test file.xlsx
だった場合など)、それをエスケープする必要があります。
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
注意を(つまり、各一重引用符を二重引用符で置き換える必要があります)。これは、Replace
機能を使用することによって達成することができます。例:
Cells(destStartRow, destStartCol).FormulaR1C1 = _
"='" & Replace(SourceFilePath, "'", "''") & _
"[" & Replace(SourceFileName, "'", "''") & "]" & _
SourceTab & "'!R" & sourceStartRow & "C" & sourceStartCol
ファイル**の名前**のみを角カッコで囲む必要があります。 '= 'C:\ Temp \ Data \ [Book1.xlsx] Sheet2'!R5C10'。 (設定可能な方法については、[この質問](https://stackoverflow.com/q/46162966/6535336)を参照してください) – YowE3K