excel - 你如何从 Excel 宏调用,一个与 Excel 电子表格交互的 applescript?

标签 excel vba macos applescript

我正在使用一个应用程序,该应用程序使用 AppleScript 公开一个可编写脚本的接口(interface)。我需要从 Excel 宏调用这个 AppleScript 脚本。该脚本应从电子表格中读取信息,将其传递给应用程序并根据结果更新电子表格。当我单独运行 AppleScript 时它工作正常,但是当从宏调用时,宏执行挂起。下面是一个说明我遇到的问题的例子:

VBA 宏:

Sub Test()
    OSA = "/usr/bin/osascript"
    SCRIPT = "/tmp/TestScript.scpt"
    MacScript ("do shell script " & Chr(34) & OSA & " " & SCRIPT & Chr(34))
End Sub

测试脚本.scpt

tell application "Microsoft Excel"
    tell active sheet of active workbook
        set value of range "A4:C5" to {{"a", "b", "c"}, {"d", "e", "f"}}
    end tell
end tell

如果我自己运行这个脚本,它可以正常工作并更新事件工作表。但是,如果我像上面那样从宏调用它,我会在从宏调用脚本的那一行收到运行时错误 5。

知道如何完成这项工作吗?

最佳答案

该错误表明 VBA 语法有问题,当然是双引号的问题。 但是,我不会运行 applescript 来运行 shell 脚本来运行 applescript。步骤太多。只需从 macscript 行运行脚本:

macscript("run script file ""Macintosh HD:Users:private:tmp:TestScript.scpt""")

关于excel - 你如何从 Excel 宏调用,一个与 Excel 电子表格交互的 applescript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25395307/

相关文章:

macos - iosnoop、iotop、opensnoop、execsnoop、opensnoop、dtruss 和其他基于 dtrace 的命令不适用于 osx El Capitan、macOS Sierra

vba - 在 VBA 中复制数组引用

performance - Range() VS Cells() - 运行时间

python - 如何使用 xlsxwriter 模块在 xlsx 中放入千位分隔符?

VBA Excel结束如果没有 block 如果错误

vba - 通过匹配Header传输数据

html - 如何通过 Swift 从 macOS 中的网页获取文本?

ios - 通过 AVFoundation 进行 RTSP 直播?

Excel 选择案例?

c++ - 使用 OLE 删除 excel 文档中的冒号过滤器