我有一个脚本从Excel(Mac Excel'04)电子表格中提取信息,并通过本地数据库处理它。我的问题(这是暂时的,等待专用脚本机器与Excel '08)是我需要在Excel中使用另一个电子表格。我想确保AppleScript继续从正确的电子表格中读取数据。
有没有办法在AppleScript中传递对特定Excel文件的引用,而不是仅仅告诉应用程序?或者可能只是引用电子表格而不必打开它??
答案 0 :(得分:1)
我在一个单独的lib中为所有人定义了一次这个函数(以及许多其他函数)
on getActiveBookAndSheet()
try
tell application "Microsoft Excel"
set theBook to workbook (get name of active workbook)
set theSheet to worksheet (get name of active sheet) of theBook
# set theSheet to worksheet (get entry index of active sheet of theBook) -- alternative
return {theBook, theSheet}
end tell
on error
error "Could't find any opened document in Excel."
end try
end getActiveBookAndSheet
将此文件另存为ExcelLib.app,位于“计算机脚本”文件夹中的“常用”文件夹中
在与Excel相关的每个Applecript的开头,我添加了这一行:
set myExcelLib to load script alias ((path to library folder as string) & "Scripts:Common:ExcelLib.app")
到了获取工作簿和工作表的时候,我只是使用它:
set {myBook, mySheet} to myExcelLib's getActiveBookAndSheet()
然后,每次您想要处理工作表的特定范围时,只需这样做:
set value of range "A2:F3" of mySheet to "etc." -- for a single line
或
tell mySheet
set value of range "A2:F3" to "etc." -- if you need to perform a whole list of operations
end
答案 1 :(得分:0)
如果我理解正确,您希望在处理另一个工作簿时启动适用于给定工作簿的脚本。
以下构造应该可以解决这个问题:
tell application "Microsoft Excel"
set WB_Name to name of workbook 1
tell workbook WB_Name
-- Do your stuff
end tell
end tell
不幸的是,您无法处理“已关闭”的文档......
HTH