You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel 2016 for Mac宏运行时错误1004求助(原2011可正常运行)

解决Excel 2016 for Mac宏Run-time Error '1004'的问题

这个问题根源在于Excel 2016 for Mac对AppleScript的路径处理、文件类型识别逻辑和2011版本存在差异,原来的代码里有几个关键细节需要调整:

  • 文件类型范围太窄:原代码只指定了.xls格式,Excel 2016默认常用.xlsx/.xlsm,会导致部分文件无法被选中或识别
  • 路径格式不兼容:原AppleScript返回的是Mac风格冒号分隔路径,Excel 2016更适配POSIX斜杠分隔路径,直接使用会触发找不到文件的错误
  • 多选分隔符易出错:用逗号分割路径时,若文件名包含空格会被错误拆分,改用换行符更可靠

下面是可以直接替换的完整修复代码:

On Error Resume Next
' 获取Documents文件夹的POSIX斜杠路径
MyPath = MacScript("return POSIX path of (path to documents folder)")
MyScript = _
"set selectedFiles to choose file of type " & _
" {""com.microsoft.Excel.xls"", ""com.microsoft.Excel.xlsx"", ""com.microsoft.Excel.xlsm""} " & _
"with prompt ""Please select a file or files"" default location alias """ & _
MyPath & """ multiple selections allowed true" & vbNewLine & _
"set posixPaths to {}" & vbNewLine & _
"repeat with aFile in selectedFiles" & vbNewLine & _
"    set end of posixPaths to POSIX path of aFile" & vbNewLine & _
"end repeat" & vbNewLine & _
"return join posixPaths using linefeed"
MyFiles = MacScript(MyScript)
On Error GoTo 0

If MyFiles <> "" Then
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With
    ' 用换行符分割路径,避免空格文件名导致的错误拆分
    MySplit = Split(MyFiles, vbLf)
    For N = LBound(MySplit) To UBound(MySplit)
        X = ActiveWorkbook.Name
        ' 使用POSIX路径直接打开文件
        Workbooks.Open (MySplit(N))
        ' 这里可以保留你原来的后续处理逻辑
    Next N
    ' 恢复Excel默认设置
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
End If

核心修改说明:

  1. 扩展文件类型:新增.xlsx和.xlsm的类型标识符,覆盖Excel主流文件格式,避免选文件时看不到新格式文件
  2. POSIX路径转换:在AppleScript中把选中文件统一转换成POSIX路径,确保Excel 2016能正确识别路径
  3. 分隔符优化:用换行符vbLf替代逗号作为多选文件的分隔符,彻底解决含空格文件名的拆分问题
  4. 恢复默认设置:循环结束后恢复ScreenUpdating和EnableEvents,避免影响Excel后续操作

你可以先测试单个文件的打开情况,再验证多选场景,应该就能解决Run-time Error '1004'的问题了。

内容的提问来源于stack exchange,提问作者Shoujiki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 08:02:38