如何像Excel VBA一样引用Applescript中相对于另一个单元格的单元格? 在Excel VBA中,我可以使用“偏移”来设置单元格D2的值:
Range("A1").Offset(1,3).Value = "Example"
我搜索了所有地方,但是Numbers Applescript中似乎没有一个“偏移”命令,尽管它非常方便。
非常感谢您的帮助!
答案 0 :(得分:1)
编辑:感谢user3439894指出了我的第一个答案的问题-这完全错误,基于Excel而不是数字。
这是一个完整的脚本示例,在Numbers中展示了一种实现目标的方法:
tell application "Numbers"
tell table 1 of sheet 1 of document 1
set c to cell "A1"'s column's address as number
set r to cell "A1"'s row's address as number
set value of cell (c + 3) of row (r + 1) to "Example"
end tell
end tell
您可以将set命令压缩为一行,如下所示:
tell application "Numbers"
tell table 1 of sheet 1 of document 1
set value of cell ((cell "A1"'s column's address as number) + 3) of row ((cell "A1"'s row's address as number) + 1) to "Example"
end tell
end tell
答案 1 :(得分:1)
为补充David的出色回答...
如果您需要模仿VBA表达式,可以将David答案中的示例代码放入 handler 中,如下例所示。
on setCellOffsetValue(cl, co, ro, val)
tell application "Numbers"
tell table 1 of sheet 1 of document 1
set c to cell cl's column's address as number
set r to cell cl's row's address as number
set value of cell (c + co) of row (r + ro) to val
end tell
end tell
end setCellOffsetValue
现在您可以在同一个脚本中多次调用它,例如:
setCellOffsetValue("A1", 3, 1, "Example")
在此版本中可以看到,setCellOffsetValue
处理程序具有四个参数:
cl
-要偏移的单元格。co
-与单元格的列偏移。ro
-与单元格的行偏移量。val
-偏移单元格的值。在脚本中放置setCellOffsetValue
handler 并根据需要调用它。
上面的 handler 具有table
,sheet
和document
硬编码,每个都编码为1
。但是,在此示例中,您还将该信息传递给处理程序:
on setCellOffsetValue(cl, co, ro, val, t, s, d)
tell application "Numbers"
tell table t of sheet s of document d
set c to cell cl's column's address as number
set r to cell cl's row's address as number
set value of cell (c + co) of row (r + ro) to val
end tell
end tell
end setCellOffsetValue
现在您可以在同一个脚本中多次调用它,例如:
setCellOffsetValue("A1", 3, 1, "Example", 1, 1, 1)
或者:
setCellOffsetValue("A1", 3, 1, "Example", "Table 1", "Sheet 1", "Untitled")
最后三个参数可以是它们的数字值或名称值,视当时需要而定。
该版本适用于具有多个表和/或 sheets 且需要定位其他table 1 of sheet 1 of document 1
以外的文档的文档
在此版本中可以看到,setCellOffsetValue
处理程序具有七个参数:
cl
-要偏移的单元格。co
-与单元格的列偏移。ro
-与单元格的行偏移量。val
-偏移单元格的值。t
-表号或名称。s
-工作表编号或名称。d
-文档编号或名称。注意:示例AppleScript代码就是这样,并且不包含任何适当的错误处理。用户有责任添加适当,需要或想要的任何错误处理。在 try 中查看error 声明和AppleScript Language Guide 声明。另请参见Working with Errors。