当我切换到 MacOS Mojave 后,我无法再使用宏将 Excel 文档另存为 PDF 到特定位置。
我必须将它保存到 /Library/Group Containers/UBF8T346G9.Office/,然后通过调用存储在 /Library/Application Scripts/中的脚本将它移动到桌面com.microsoft.Excel/.
这已经工作了几个月。使用这个宏/脚本组合的人突然无法这样做了。没有其他用户遇到问题,有些用户使用相同的 Excel 和 MacOS 组合(分别为 16.29 和 10.14.6)。
当她尝试运行宏时,它抛出
Invalid procedure call or argument (Error 5)
特别是在调用此脚本的行上。
在宏的开头还有另一个脚本,它不接受参数并且正在运行。我使用 MsgBox 查看传递给 AppleScriptTask 的字符串,使用脚本编辑器将其插入脚本,然后毫无问题地运行它。
这是 AppleScript:
ExistsFile(sPath)
on ExistsFile(sPath)
set sPath to sPath as POSIX file
tell application "Finder" to set sPath to file sPath
set dest to (path to desktop)
move sPath to dest without replacing
end ExistsFile
这是来自宏的调用:
result = AppleScriptTask("moveToDesktop.scpt", "ExistsFile", sPath & strJobNumber & " Cover Page.pdf")
我根据在其他论坛上看到的内容尝试了以下方法:
- 将文件名设置为变量并将其传递给 AppleScriptTask
- 删除脚本中的扩展名、删除文件夹中的扩展名以及这两者的组合
最佳答案
在 MacOS Mojave 和更新版本中,您需要执行以下操作:
打开系统偏好设置 - 安全和隐私 - 隐私选项卡 - 自动化 - Excel ~ 勾选 Finder。
关于excel - 将参数传递给 AppleScriptTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59430056/