为什么这个脚本在我的计算机上运行,​​而在另一台计算机上运行?

时间:2014-07-23 23:04:37

标签: excel applescript automator applescript-excel

我有一个非常简单的脚本来清理Microsoft Excel电子表格。它在我的计算机上完美运行,但是当我试图将它发送给同事时,它对他不起作用。这是代码:

tell application "Microsoft Excel"
  tell worksheet "Sheet1" of active workbook
    delete column 22
    delete column 21
    delete column 20
    -- this continues until column 1
    delete column 1
end tell
tell worksheet "Sheet1" of active workbook
    set value of cell "E27" to "=D27-2500"
    set value of cell "E28" to "=D28-2500"
    -- this continues a number of times as well
    set value of cell "E58" to "=D58-2500"
    set value of cell "F3" to "MEAN"
    set value of cell "G3" to "MEDIAN"
    set value of cell "H3" to "ST DEV"
  end tell
 end tell

当我的同事试图运行此脚本时,他收到以下错误:

error "Microsoft Excel got an error: Can’t set «class pval» of cell \"E27\" of «class cXLW» \"Sheet1\" to \"=D27-2500\"." number -10006 from «class pval» of cell "E27" of «class cXLW» "Sheet1"

此外,他的AppleScript编辑器更改了代码,例如

delete column 22

变成

«event XCELdelo» column 22

set value of cell "E27" to "=D27-2500"

变成

set «class pval» of cell "E27" to "=D27-2500"

如何让这个脚本在我的同事的计算机上运行?

2 个答案:

答案 0 :(得分:0)

您可能正在运行不同版本的Excel。我建议您的同事升级或升级。如果需要升级,可能需要修改脚本。

但是脚本仍然可以使用不同的版本。你能做些什么来看看这是否有效。

在同事的机器上的脚本编辑器中打开脚本并重新编译然后运行它并查看是否发生任何错误。

答案 1 :(得分:0)

当您将文本编译为AppleScript时,AppleScript编辑器始终会根据目标应用程序的AppleScript字典和您运行的Mac OS略微更改它。在您的计算机上,您的AppleScript将在您的OS X版本上定位您的Excel版本。在您的同事的计算机上,您的AppleScript将在其OS X版本上瞄准他或她的Excel版本。如果Excel版本不同,针对应用程序“Excel”的AppleScript代码块将在每个系统上进行不同的编译。在您同事的系统上,您使用的某些命令和属性根本不存在,因此您会看到原始Apple事件,例如“«event XCELdelo»”而不是“delete”。如果您的OS X版本不同,这也可能是一个问题,因为你真的在运行不同版本的AppleScript。

如果您的同事想要运行您的Excel AppleScript,他/她将不得不执行以下操作之一:

  1. 使用与您使用相同版本的Excel,可能使用相同版本的OS X
  2. 基于AppleScript字典为他或她使用的Excel版本重写AppleScript,这与您使用的Excel版本的AppleScript字典有很大不同 - 他或她可能必须替换丢失的“例如,删除“带有”擦除“命令的命令,或者在他或她的Excel版本中可能没有与”删除“对应的命令。
  3. 简而言之,您可以使用以下内容:

    tell application "Excel"
    

    ......你应该认为它真的在说:

    tell application "Excel 10 on Mac OS X 10.9"
    

    ...或您正在使用的任何版本的Excel和OS X.无法保证您的AppleScript将在不同版本的Excel和/或OS X上运行。