excel - 将参数传递给 AppleScriptTask

标签 excel vba macos applescript

当我切换到 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/

相关文章:

macos - Mac OS X 中的 Shell 脚本从主目录运行?

charts - Excel VBA 用户窗体 - 设置与用户窗体图像大小相同的图表

vba - 类方法不能使用同一个类的私有(private)属性?

Excel VBA Worksheet_Calculate 事件针对不同的工作簿触发

vba - 对范围求和并格式化求和错误

excel - 如何将 "fraction"字符转换为十进制?

excel - 将范围总和粘贴到另一个单元格

excel - VBA 自定义集合错误 - (未设置对象变量或 block 变量)

python - 无法使用 easy_install 安装 pip

macos - 在 macOS Mojave 10.14.6 上找不到 _ctermid.h