我使用JXA来自动化使用数字应用程序的进程。我需要的是选择一个应用宽度的单元格范围,但是JXA不允许我获得它们。
根据苹果文档,我只需要在数组中使用make或push创建的对象,但是任何对象都可以工作。这是我的代码和自动程序错误:
选项1:
var Numbers = Application('Numbers');
Numbers.Range({name: 'A2:A20'}).make();
// -> Error: Can't make or move that element into that container备选方案2:
var Numbers = Application('Numbers');
var myRange = Numbers.Range({name: 'A2:A20'});
Numbers.documents[0].sheets[0].tables[0].ranges.push(myRange);
// -> Error: Can't create object. 选项3:
var Numbers = Application('Numbers');
var myRange = Numbers.Range({name: 'A2:A20'});
Numbers.documents[0].sheets[0].tables[0].selectionRange = myRange;
// -> Automator close with an unexpected error根据AppleScript文档(语法与Javascript非常不同),我可以分配表示范围的文本:
set selection range of table 1 to range "H5:K8"但是如果我用Javascript做了这样的事情,它就不起作用了:
备选方案4:
var Numbers = Application('Numbers');
Numbers.documents[0].sheets[0].tables[0].selectionRange = 'A2:A20'
// -> Error: Can't convert types.我已经搜索过它,但是我没有发现任何对我有帮助的东西(好的参考资料是关于AppleScript的,少数包含关于JXA的引用是关于邮件的)。
感谢您的帮助(任何与文档或ides的链接将不胜感激)。
发布于 2015-06-12 00:02:24
这个AppleScript:
tell application "Numbers"
tell table 1 of sheet 1 of document 1
set selection range to range "A2:A20"
end tell
end tell实际上将表的选择范围设置为名为"A2:A20“的表的范围。
下面是等价的JavaScript:
var Numbers = Application("Numbers")
var table = Numbers.documents[0].sheets[0].tables[0]
table.selectionRange = table.ranges["A2:A20"]https://stackoverflow.com/questions/30701351
复制相似问题