Excel for Mac 2016中的Dir()会导致崩溃

时间:2017-06-27 15:34:19

标签: excel excel-2016 excel-vba-mac

我正在尝试使用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

以下是崩溃时错误消息的屏幕截图:enter image description here

这是一个已知的错误吗?我是否错误地将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

时崩溃

1 个答案:

答案 0 :(得分:1)

使用Ron de Bruin的macscript:

https://www.rondebruin.nl/mac/mac013.htm 循环访问Mac上的文件夹中的文件(Dir for Mac Excel)