插入文本并将其添加到指定范围以供以后检索

Insert text and add it to a named range for later retrieval

本文关键字:范围 检索 添加 插入文本      更新时间:2023-09-26

我正试图为文档编写一个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());