Dir()在Excel for Mac 2016导致崩溃
问题描述:
我想通过使用Dir的文件进行迭代,并且我知道它在Mac上的工作方式与Windows不同。 This question一直有帮助,但我一直无法实施建议的解决方案。第一次调用Dir成功返回所需的文件名,但第二次调用崩溃excel。我想实现这样的模式:Dir()在Excel for Mac 2016导致崩溃
Sub printFileNames()
Dim path as String
Dim fileName as String
path = ThisWorkbook.Path & "/SUBFOLDER/"
fileName = Dir(path, MacID("XLSX"))
While fileName <> ""
MsgBox fileName
fileName = Dir 'This CRASHES EXCEL
Wend
End Sub
这是一个已知的bug?我是否错误地使用了Mac版Excel 2016的Dir?
编辑: 我一直在使用这个精确解也试过,贴在上面的链接的问题:
Sub Sample()
MyDir = ActiveWorkbook.Path
strPath = MyDir & ":SUBFOLDER:"
strFile = Dir(strPath, MacID("TEXT"))
'Loop through each file in the folder
Do While Len(strFile) > 0
If Right(strFile, 3) = "csv" Then
Debug.Print strFile
End If
strFile = Dir
Loop
End Sub
但是,这给出了一个“找不到文件”的错误,即使有两个的.csv ,.txt和.xlsx文件在指定的文件夹中。使用:的/SUBFOLDER/
代替:SUBFOLDER:
打印第一个循环相应的文件名,但崩溃在调用strFile = Dir
尝试'path = ThisWorkbook.Path&“:SUBFOLDER:”' –
https://stackoverflow.com/questions/10045474/dir-function-not-working-in-mac-excel-2011-vba/38042805另请尝试'MacID(“TEXT”)' –
感谢您的(立即)回复。我尝试用':'替换'/'。 'ThisWorkbook.Path&“:SUBFOLDER:”',这会在第一次调用Dir时导致文件未找到错误,而使用:ThisWorkbook.Path&“/ SUBFOLDER /”'会返回第一个文件的名称在子文件夹中。 (虽然它会在第二个Dir呼叫时崩溃)。我也试过用冒号(:)和斜杠(/)作为文件夹分隔符的'MacID(“TEXT”)',但是这也抛出了找不到文件的错误,而'MacID(“XLSX”)'返回文件名,第一次 –