0

我有大约 400 个 excel 文件。我想在现有文件的第一列之前插入一列,然后将文件名插入该列的每一行。

我对 Applescript 有一点了解,基于此,我编写了这个脚本,以便我可以将一些文件放到脚本上,它会在每个文件上执行脚本。

我想知道是否有人可以帮助我完成“TO DO”行。执行后,这个脚本会给我一个对话框,上面有我放在上面的文件的路径。但是 excel 应用程序会抛出一个错误对话框,上面写着“内存不足”。我只用 2 个 excel 文件尝试了这个,所以不是导致错误的文件数。

有人可以帮我完成 TODO 行,并告诉我为什么我会收到错误。谢谢

property numFiles : 0

on open excelFiles


set fileNames to ""

tell application "Finder"
    repeat with eachFile in excelFiles

        --open document file eachFile

        --tell application "Microsoft Excel"

        --increment count



        --save name of each file

        set fileNames to fileNames & return & (POSIX path of eachFile)

        --TO DO insert a column

        --TO DO insert text in each column to the name of eachFile

        --end tell
    end repeat
    display dialog fileNames
    --display dialog "Ouch that hurt " & return & "You dropped " & (count excelFiles) & "files on me"
end tell
end open

on addFilePath(eachFile)
set fileNames to fileNames & (POSIX path of eachFile)
end addFilePath

非常感谢

4

1 回答 1

1

我什么都不懂 --> 将文件名插入该列的每一行 | TO DO在每列中将文本插入到每个文件的名称中。

这是脚本,更新:

    on open excelFiles
    set numFiles to count excelFiles
    repeat with eachFile in excelFiles -- open each file in Excel
        tell application "Microsoft Excel"
            set tBook to open workbook workbook file name (eachFile as string)
            set tName to name of tBook
            insert into range column 1 of active sheet -- insert column

            set lastCell to last cell of used range of active sheet -- get last cell from the used range
            set value of range ("A1:A" & first row index of lastCell) of active sheet to tName --set first column's values to the file name

            close tBook saving yes
        end tell
    end repeat
    display dialog numFiles
end open

编辑:我忘记了错误:

没有足够的内存:这个奇怪的错误似乎是:你调用了一个处理程序而不使用myor tell me to) 在tell block application.

像这样使用的:set x to my addFilePath(eachFile)

另外, 不推荐tell application "Microsoft Excel"块中的 块,这可能会导致意外错误。application Finder

于 2012-07-18T14:49:39.703 回答