applescript - 使用 Applescript 在 Numbers 中访问具有偏移参考的单元格
问题描述
如何在 Excel VBA 中引用相对于 Applescript 中另一个单元格的单元格?在 Excel VBA 中,我可以使用“偏移量”来设置单元格 D2 的值:
Range("A1").Offset(1,3).Value = "Example"
我到处搜索,但 Numbers Applescript 中似乎没有“偏移”命令,尽管它非常方便。
任何帮助深表感谢!
解决方案
为了补充大卫的出色回答......
如果您需要模仿 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
处理程序放在您的脚本中并根据需要调用它。
上面的处理程序具有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")
最后三个参数可以是它们的数值或名称 value,视当时的需要而定。
此版本对于具有多个表格和/或工作表以及需要定位其他对象的文档非常方便。table 1 of sheet 1 of document 1
正如你在这个版本中看到的,setCellOffsetValue
处理程序有七个参数:
cl
- 要偏移的单元格。co
- 与单元格的列偏移量。ro
- 与单元格的行偏移量)。val
- 偏移单元格的值。t
- 表号或名称。s
- 工作表编号或名称。d
- 文件编号或名称。
注意:示例 AppleScript 代码就是这样,并且不包含任何可能适当的错误处理。用户有责任根据需要或需要添加任何错误处理。查看AppleScript 语言指南中的try 语句和错误 语句。另请参阅处理错误。
推荐阅读
- sql - MS Access SQL Query - 从两个查询的联合中减去数值结果
- powershell - 为什么我不能使用 powershell 脚本为我的整个屏幕截屏?
- node.js - 更改值聚合,如果条件节点 js
- javascript - 我可以在不录制此音频的情况下获取音频文件吗?
- sql - 在 SQL Server 中将多行转换为单行
- android - Admob 广告政策
- python - 如何让 .Replace() 从文本文件工作?
- javascript - 如何在 Chrome 开发者工具中访问 JSON 响应?
- reactjs - 如何测试来自路由器的链接是否有效?开玩笑/RTL
- javascript - 删除 React 元素的正确方法是什么?