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

2023-12-06

我正在尝试编写一个用于文档的 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());生成以下错误:

类型错误:无法调用 null 的方法“getRange”。

知道我做错了什么吗?


'myInsertedText'实际上是namedRange的名称,而不是id:

  var namedRange = doc.addNamedRange('myInsertedText', savedInsert);
  var namedRangeId = namedRange.getId();
  doc.setSelection(doc.getNamedRangeById(namedRangeId).getRange());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

插入文本并将其添加到命名范围以供以后检索 的相关文章

随机推荐

  • 无法将资产发送到 Android Wear 设备

    我正在尝试将资产发送到我的 Sony SmartWatch3 我遵循了谷歌的文档 https developer android com training wearables data layer assets html 但它不起作用 我的
  • com.google.firebase.database.DatabaseException:必须在使用 FirebaseDatabase 实例之前调用 setPersistenceEnabled()

    当我尝试在 firebase 中设置持久性时遇到问题 有人可以解释一下如何解决这个问题吗 protected void onCreate Bundle savedInstanceState super onCreate savedInsta
  • 清空 ArrayList 还是只是创建一个新的并让旧的被垃圾收集? [复制]

    这个问题在这里已经有答案了 清空集合 在我的例子中是 ArrayList 与创建新集合 并让垃圾收集器清除旧集合 相比 有哪些优点和缺点 具体来说 我有一个ArrayList
  • 减少多个条形图中条形的宽度 R

    我需要减少下面多个条形图中条形的宽度 我尝试使用space选项按照这里更改条形图中条形的宽度 R 但似乎对于多个条形图 即在我的情况下每个变量有 4 个条形图 该函数space不起作用 以下是一些重现该情节的虚假数据 mat example
  • TThread.Synchronize 在 Delphi 2009 中导致(接近)死锁(在 Delphi 7 中工作)

    在 Delphi 2009 中 在 Delphi 7 中运行良好的同步函数执行速度极其缓慢 直到您在打开的窗体上移动鼠标为止 摆动鼠标会导致程序进入某种鼠标空闲状态 这不会CheckSynchronize CheckSynchronize
  • ASP.NET 的类似 Excel 的服务器端控件

    我们需要增加用于在 Web 应用程序上编辑的网格的功能 并且我们的经理一直引用 Excel 作为数据网格的完美示例 他仍然没有真正意识到电子表格之类的控件不会这样做 它不存在现成的 但我想我还是应该做一些搜索 我在 Google 上找到了一
  • C 和 printf 中的递归函数

    首先 我是 C 语言的初学者 我们正在大学的 结构化编程 课程中学习 C 语言 现在 最后几节关于 递归函数 的讲座对我这个初学者来说是一个痛苦 你们中的任何人都可以向我解释一下这一点吗 所以我有这个小脚本 一个递归函数 它接受一个十进制数
  • 如何获取 Outlook 邮件的发件人

    我有一些代码可以部分填充电子邮件作为回复 但我无法联系发件人 除非他们在 一个 我们的 上 交换服务器 Public Sub CreateMessage Dim EmailFrom As String Dim NewMessage As O
  • 在 Woocommerce 的下拉变体属性选项中显示价格和库存状态

    在 woocommerce 上 我的可变产品的每个变体都有特定的价格 如何在属性下拉选项中显示变化价格和库存状态 Note 这只适用于只有一个下拉选择字段 因此变量产品中设置的变体有一个属性 使用多个属性 因此多个下拉选择字段 它会显示一些
  • MongoDB 查询不存在字段和索引的记录

    我们有一个包含大约 1M 文档的 mongo 数据库 我们希望使用已处理字段轮询该数据库以查找我们以前从未见过的文档 为此 我们设置一个名为的新字段 processed 为了查询需要处理的文档 我们查询没有这个已处理字段的文档 db sto
  • Cloudera JDBC Driver for Impala 的WITH 子句问题 - 返回列名称而不是实际数据

    我正在使用 Cloudera JDBC Driver for Impala v 2 5 38 和 Spark 1 6 0 来创建 DataFrame 它适用于除WITH子句之外的所有查询 但WITH在我的组织中广泛使用 下面是我的代码片段
  • jQuery ajax 事件调用顺序

    假设我有一个像这样的简单函数 body ajaxSuccess function alert global post http www google com name John time 2pm function data s xhr al
  • xslt中输入参数

    如何将输入参数传递到 XSLT 样式表 我正在使用 xsltproc 并且我想使用 stringparam
  • PySide/PyQt 叠加小部件

    我正在尝试在 PySide 中实现这样的目标 https codepen io imprakash pen GgNMXO我想要做的是创建一个无框子窗口 下面有黑色覆盖层 我没有成功创建一个无框子窗口和覆盖层 这是复制 HTML 的基本代码
  • 如何将 Git Bash 添加到 VsCode

    在 VsCode 中选择终端时不显示 Git Bash 选项 确保您已经安装适用于 Windows 的 Git 在 VS Code 中 转到命令面板 P 终端 选择默认配置文件 or 终端 选择默认 Shell在旧版本中 然后在这种情况下选
  • 迭代时擦除集合元素///

    我不明白 为什么会出现运行时错误 迭代时删除集合元素 set
  • JS设置Cookie然后加载页面的方法

    我经常访问一个网站 其中有 点击更改为深色主题 按钮 黑暗主题更容易阅读 所以我每次访问都必须单击链接 关闭时清除历史记录 我在本地 Linux 机器上运行 Firefox 因此 Javascript HTML Python 和 Bash
  • 设置默认文件浏览位置VBA

    我有以下 VBA 代码 用于浏览 MS ACCESS 表单中的文件名 Private Sub Command64 Click Dim dialog As FileDialog Dim filePath As String Dim fileN
  • 使用 Jsoup 删除元素不起作用

    我想删除 html 文件头部的一些元素 CSS 标签 我尝试过这样的 Document doc Jsoup parse htmlString Element head doc head Elements headChildren head
  • 插入文本并将其添加到命名范围以供以后检索

    我正在尝试编写一个用于文档的 Google Apps 脚本 该脚本将插入一些文本 然后将插入的文本添加到命名范围 为了确保插入的文本保存到命名范围 我只想选择插入的文本 这是代码 function insertText var doc Do