ExecuteExcel4Macro,包含撇号的path

这将是我在这个网站上的第一个问题,请耐心等待。

所以,我试图利用ExecuteExcel4Macro函数在不同工作簿中引用一个值,而不必打开工作簿,因为它必须遍历目录中的许多工作簿,并在每个工作簿中引用同一个单元格。

这条线出现问题:

wbRef = "'" & folderName & "[" & myDir & "]" & thatSheet & "'!" 

这导致此行上的运行时错误1004:

 month = CStr(ExecuteExcel4Macro(wbRef & Range("D4").Address(, , xlR1C1))) 

如果我们说,

 folderName = "C:\test\Accounts\O'Malley\Summary\" 

,发生错误。

由于folderName包含一个撇号,因此ExecuteExcel4Macro不能识别wbRef,因为它是一个文件夹的path,但在pathstring中太早closures该path,从而导致错误。

所以我的问题是:

有没有办法绕过这个撇号,而不必更改文件夹名称,而不必打开子文件夹中的每个单独的工作簿?

我用双引号试过,但似乎没有办法。

下面是我的代码草稿,或者至less是上下文。

 Sub refMonth() Dim thisWb as Workbook, folderName as String, myDir as String, wbRef as String, thatSheet as String, month as String Set thisWb = ActiveWorkbook folderName = SelectFolder(thisWb) If folderName = vbNullString Then GoTo Done myDir = Dir(folderName & "*.xls") thatSheet = "Sheet1" wbRef = "'" & folderName & "[" & myDir & "]" & thatSheet & "'!" Do Until myDir = vbNullString month = CStr(ExecuteExcel4Macro(wbRef & Range("D4").Address(, , xlR1C1))) 'Do a lot of stuff, which works when in a folder without an apostrophe myDir = Dir() wbRef = "'" & folderName & "[" & myDir & "]" & thatSheet & "'!" Loop Done: End Sub Function SelectFolder(thisWb As Workbook) Dim diaFolder As FileDialog, DirName As Variant ' Open the file dialog Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker) diaFolder.AllowMultiSelect = False diaFolder.InitialFileName = strFolder(thisWb.Path) If diaFolder.Show = True Then 'diaFolder.Show DirName = diaFolder.SelectedItems(1) If Right(DirName, 1) <> "\" Then DirName = DirName & "\" End If Else Set diaFolder = Nothing Exit Function End If Set diaFolder = Nothing SelectFolder = DirName End Function Function strFolder(ByVal strFolder0) As String strFolder = Left(strFolder0, InStrRev(strFolder0, "\") - 1) & "\" End Function 

任何帮助都是值得赞赏的,即使只是告诉我不可能避开撇号。

我在这里找不到答案,但是如果有的话,请指出正确的方向。

你需要加倍撇号来逃避它:

 wbRef = "'" & Replace$(folderName & "[" & myDir & "]" & thatSheet, "'", "''") & "'!"