这将是我在这个网站上的第一个问题,所以请耐心等待。
因此,我尝试利用 ExecuteExcel4Macro 函数来引用不同工作簿中的值,而不必打开工作簿,因为它必须循环遍历目录中的许多工作簿,并引用每个工作簿上的相同单元格。
问题出现在这一行:
wbRef = "'" & folderName & "[" & myDir & "]" & thatSheet & "'!"
Run Code Online (Sandbox Code Playgroud)
这会导致这一行出现运行时错误 1004:
month = CStr(ExecuteExcel4Macro(wbRef & Range("D4").Address(, , xlR1C1)))
Run Code Online (Sandbox Code Playgroud)
如果,比方说,
folderName = "C:\test\Accounts\O'Malley\Summary\"
Run Code Online (Sandbox Code Playgroud)
,出现错误。
由于folderName 包含撇号,ExecuteExcel4Macro 不会将wbRef 识别为文件夹的路径,而是在路径字符串中过早关闭该路径,因此导致错误。
所以我的问题是:
有没有办法绕过这个撇号,而不必更改文件夹名称,也不必打开子文件夹中的每个单独的工作簿?
我尝试过使用双引号,但似乎没有成功。
下面是我的代码草稿,或者至少是上下文。
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 …Run Code Online (Sandbox Code Playgroud)