使用Applescript将多个Excel工作簿中的数据复制到主工作簿中

使用Applescript将多个Excel工作簿中的数据复制到主工作簿中,excel,applescript,Excel,Applescript,我试图将一系列Excel文件中的值合并到一个主文件中。每个较小的文件都有一个标题行,然后是144行数据,a-J列。脚本应该循环遍历每一行,获得减去标题的数据,然后在主工作簿中找到下一行没有数据,并插入输入数据。但是,粘贴部分和我尝试保存主文件时都存在问题 尝试选择要复制的多个文件会给我一个奇怪的工作表,其中数据会从不同的输入工作表复制多次(不确定这是否与剪贴板未正确清除有关?)。最后,它问我是否要保存主excel工作簿,因此它看起来好像跳过了“保存”行(即使有时该部分可以工作?) 对于任何明显的

我试图将一系列Excel文件中的值合并到一个主文件中。每个较小的文件都有一个标题行,然后是144行数据,a-J列。脚本应该循环遍历每一行,获得减去标题的数据,然后在主工作簿中找到下一行没有数据,并插入输入数据。但是,粘贴部分和我尝试保存主文件时都存在问题

尝试选择要复制的多个文件会给我一个奇怪的工作表,其中数据会从不同的输入工作表复制多次(不确定这是否与剪贴板未正确清除有关?)。最后,它问我是否要保存主excel工作簿,因此它看起来好像跳过了“保存”行(即使有时该部分可以工作?)


对于任何明显的错误,我感到抱歉,我对编码非常陌生。例如,我知道直接设置值比使用剪贴板(尤其是击键)更好,但我根本无法让它工作。

可以使用VBA宏。您需要的所有代码都在这里:啊,谢谢!是的,我应该意识到VBA宏比使用applescripts更容易。我们还发现了一个Excel外接程序,它也可以执行相同的操作-有Windows和Mac版本:
set whichFile to choose file with prompt "choose files to copy" with multiple selections allowed
set mainBook to choose file with prompt "choose master file"

    repeat with eachFile in whichFile

    tell application "Microsoft Excel"

        activate
        open eachFile

        -- get data to copy
        set theRange to range "A2:J145" of active sheet of workbook eachFile
        select theRange
        tell application "System Events" to keystroke "c" using command down

    end tell

    tell application "Microsoft Excel"

        -- write data into excel
        open mainBook
        set lastFilledCell to get end (range "A105536") of active sheet of mainBook direction toward the top
        set insertPoint to get offset lastFilledCell row offset 1
        select insertPoint
        tell application "System Events" to keystroke "v" using command down

    end tell

    tell application "Finder" to set clipboard to {}

    tell application "Microsoft Excel"

        save mainBook in file mainBook with overwrite
        close workbooks

    end tell

end repeat