我正在尝试使用Dir迭代文件,我知道它在Mac上的工作方式与Windows不同。 This question有帮助,但我无法实施建议的解决方案。第一次调用Dir成功返回所需的文件名,但第二次调用崩溃了excel。我想实现这样的模式:
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
这是一个已知的错误吗?我是否错误地将Dir用于Mac版的Excel 2016?
修改 我也试过使用这个确切的解决方案,发布在上面的链接问题中:
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
但这会给出一个&#34; File Not Found&#34;错误,即使指定文件夹中有.csv,.txt和.xlsx文件。使用:/SUBFOLDER/
代替:SUBFOLDER:
打印第一个循环的相应文件名,但在调用strFile = Dir
答案 0 :(得分:1)
使用Ron de Bruin的macscript:
https://www.rondebruin.nl/mac/mac013.htm 循环访问Mac上的文件夹中的文件(Dir for Mac Excel)