我正试图为文档编写一个Google Apps脚本,将插入一些文本,然后将插入的文本添加到指定的范围。为了确保插入的文本被保存到一个命名的范围,我只需要选择插入的文本。
代码如下:
function insertText() {
var doc = DocumentApp.getActiveDocument();
var docUi = DocumentApp.getUi();
var cursor = doc.getCursor();
if (cursor) {
var insert = cursor.insertText('{insertedtext}');
var rangeBuilder = doc.newRange();
if (insert) {
rangeBuilder.addElement(insert);
} else {
docUi.alert('Cannot insert text here.');
}
} else {
docUi.alert('Cannot find a cursor.');
}
var savedInsert = rangeBuilder.build()
doc.addNamedRange('myInsertedText', savedInsert)
doc.setSelection(doc.getNamedRangeById('myInsertedText').getRange());
}
当我运行脚本时,doc.setSelection(doc.getNamedRangeById('myInsertedText').getRange());
生成以下错误:
TypeError: Cannot call method " gerange "null。
你知道我做错了什么吗?
'myInsertedText'
实际上是namerange的名称,而不是id:
var namedRange = doc.addNamedRange('myInsertedText', savedInsert);
var namedRangeId = namedRange.getId();
doc.setSelection(doc.getNamedRangeById(namedRangeId).getRange());