使用 onChange 检测注释更改

2023-12-01

Google 表格是否可以检测您何时使用 onChange 编辑笔记或插入新笔记?

function onChange(e) {
  var ss = SpreadsheetApp.getActiveSheet();
  var s = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Current");
  var r = ss.getActiveCell();

  if(e.changeType == 'OTHER') {
    if ((r.getColumn() < 7 || r.getColumn() > 7) && (ss.getName()=="Completed") && (r.getRow() > 1)) { // 2. If Edit is done in any column before or after 6th Column (F) And sheet name is Sheet1 then:
      var celladdress ='G'+ r.getRowIndex() // Add time stamp to cell in Column F
      ss.getRange(celladdress).setValue(Utilities.formatDate(new Date(), "GMT-08:00", "MM/dd/yyyy HH:mm"));
      ss.getRange(r.getRow(), 17).setValue(s.getRange(row, 2).getNote());
    }
  }    

我尝试了changeType FORMAT、EDIT和其他,但它们都不起作用。如果 onChange 无法检测笔记编辑,是否有函数可以做到这一点?


解释/问题:

我花了一个小时才弄清楚这一点,但实际上你的逻辑是正确的。

  • 编辑/插入注释时e.changeType回报OTHER,因此这部分代码是正确的。

我测试了您的代码,并且还尝试通过多种不同的方式获取活动单元格:getActiveCell(), getCurrentCell() and getActiveRange()由于事件对象onChange触发器不支持e.range.

  • But 每一个 time r.getColumn() and r.getRow()1 and 1当我手动运行完全相同的代码时,我得到了正确的单元格。

  • 我在网上搜索了一下,发现这种行为有not only也被举报了accepted通过谷歌作为bug它涉及onChange扳机。你可以找到链接HERE并确保为该问题加注星标(左上角),以使其更受欢迎。

Since r.getRow() is 1你的代码没有做任何事情,因为你有r.getRow() > 1作为一个始终评估为的条件false因为这个错误。

作为此错误的证明,您可以使用此代码,当您在工作表中插入或修改注释时,您会看到Completed,时间戳将被粘贴到单元格中G1同一张纸的。

function onChange(e) {
  var ss = SpreadsheetApp.getActiveSheet();
  var s = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Current");
  if(e.changeType == 'OTHER') {
    if (ss.getName()=="Completed") {
      var celladdress ='G1';
      ss.getRange(celladdress).setValue(Utilities.formatDate(new Date(), "GMT-08:00", "MM/dd/yyyy HH:mm"));
    }
  }
} 

虽然这个答案没有回答您的问题,但它证明您的逻辑是正确的,但由于错误,您没有得到预期的结果。因此,我认为了解这个问题对您和其他未来的读者会很有用。不幸的是,我没有想出解决方案,但我希望其他读者能想到。

对于上述所有内容,我假设您已经安装了onChange触发器,因为它是可安装的触发器。

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

使用 onChange 检测注释更改 的相关文章

  • 尝试获取 Google accessToken

    看起来 无论我做什么 谷歌都在竭尽全力阻止我完成这个研究项目 我的项目让我使用 Google 电子表格作为数据库 并使用所述电子表格中的数据执行程序化的 Google 图片搜索 并向最终用户显示一些结果 设置说明 我开始按照此处的说明进行操
  • 如何在Google工作表中添加类似于Excel中的表单控件滚动条的水平滚动条?

    我想添加一个水平滚动条 它将根据其位置提供 0 365 的值 并使用该值进行计算 我正在创建一个甘特图 与页面上的相同https www vertex42 com ExcelTemplates excel gantt chart html
  • 自动递增 ID 号 Google Apps 脚本

    我想在向工作表添加新值时自动增加 ID 我尝试从当前的 ID 列表创建一个列表 但它只计数到 5 因此当自动递增时 它只会到达一个点并为每个输入保存该数字 以下是我尝试获取 ID 号列表的方法 但它没有获取整个列表 我缺少什么 var ss
  • 插入行 python gdata.spreadsheets.client

    我对专门用于谷歌电子表格的 python gdata API 有点困惑 使用 gdata spreadsheet service 可以很容易地组合一个字典并将其作为新行插入到谷歌电子表格中 如下所示http www mattcutts co
  • ArrayFormula 破坏了 getLastRow() 函数。可能的解决方法?

    在我的电子表格中 我有一个正在运行的脚本 它使用getLastRow 功能是其逻辑的重要组成部分 自从我在其中一列中应用数组公式以来 getLastRow 功能无法正常工作 即使其他列中没有其他值 数组公式似乎也一直 应用 到工作表的底部
  • Google Apps 脚本 - 是否可以仅通过 Google Apps 脚本更改表格中的某些单元格?

    我在 Google SpreadSheet 中制作了一个目录 我的电子表格有一个表格 用户可以在其中添加信息 该表是通过从数据库表获取数据的脚本动态创建的 用户可以编辑表中的某些单元格 然后单击按钮将更改保存回数据库表中 我想限制他可以手动
  • 我们可以使用 Google Spreadsheet 作为后端数据库吗

    我正在尝试开发一个应用程序 在其中从与某些事务相关的多个客户端获取数据 现在我想使用 Google Spreadsheet 进行一些分析 有什么方法可以使用 ASP Net MVC 使用 C 实现此目的 Google 提供 OAuth 当我
  • 如何使用 Google Sheets (v4) API 修改依赖于特定单元格的特定数据行?

    我想找到一种使用 Google API 根据我提供的条件修改特定行数据的方法 类似于 SQL 的东西 UPDATE Customers SET ContactName Alfred Schmidt City Frankfurt WHERE
  • Google 电子表格中带有 len 的 Countif

    我有一个像这样的 XXX 列 XXX A Aruin Avolyn B Batracia Buna 我想仅当单元格中的字符串长度 gt 1 时才对单元格进行计数 怎么做 我想 COUNTIF XXX1 XXX30 LEN gt 1 但我应该
  • 用于设置形状颜色的 Google Apps 脚本

    我正在查看 Google Apps 脚本参考here https developers google com apps script reference slides fill setSolidFill Color 并注意到有一种方法set
  • 在 Google Apps 脚本中,如何为我实现的服务设置 HTTP 响应代码?

    假设我有一个返回 XML 文档的 服务 function doGet var result
  • 谷歌表格在一行上的不同单元格范围上添加时间戳

    我一直试图在与该行上两个不同单元格范围相对应的行上放置两个时间戳 我已成功使用此脚本对行上的任何更改 第 5 列之后 添加时间戳 我想要的是 如果单元格范围 F 到 L 发生任何更改 则在 E 列中放置一个时间戳 然后 如果从 N 列到 Z
  • Google 脚本:如何编写从驱动器中的 txt 自动导入电子表格的脚本?

    我以前从未使用过 Javascript 而且多年来我一直在尝试这样做 但没有成功 而且我找不到任何以前的人尝试过 我想直接从驱动器中的 txt 文档复制文本数据 可以手动完成此操作 但我希望每天自动完成 文本文件 Boxes Made 3
  • 将时间戳转换为一个数组

    在应用程序脚本 谷歌表中运行 我从 API 获取时间戳并返回此结果 1 6370611672429312E18 1 63706107263277082E18 我执行此代码并且工作正常 但问题不在数组中 我每次都需要它在数组中 const t
  • 如何通过 Apps Script & Drive SDK 创建新的脚本文件

    尝试通过在 Apps 脚本中调用 Drive SDK 来创建包含文件的新项目 下面的内容到底会放在哪里UrlFetchApp要求 files id 9basdfbd 749a 4as9b b9d1 d64basdf803 name Code
  • 在 userCodeAppPanel 中看不到我的 javascript 代码

    这是来自 Google 电子表格中包含的脚本的代码 唯一的其他代码是onOpen它创建菜单和showDialog 功能 function showDialog userInterface HtmlService createHtmlOutp
  • 将 html 嵌入 google 工作表

    我想通过创建一个 html 元素并将其放在电子表格顶部来在电子表格顶部显示 HTML 例如 如果我通过合并 A1 G5 在工作表顶部创建了一个大单元格 是否可以在其中嵌入 html div h1 Hello World h1 div 我注意
  • 测量填写部分的时间 - 谷歌表单

    我正在尝试使用谷歌表单进行研究调查问卷 对于某些部分 我想自动测量用户填写所需的时间 谷歌表单中没有这样的选项 我尝试复制表单源 并用 javascript 填充时间 但它不起作用 跨源问题 未能成功托管复制的表单 如何做到 我如何衡量回答
  • 根据日期自动对数据进行排序

    我正在尝试使我的电子表格根据日期自动对数据进行排序 我附上了我正在使用的电子表格的照片 您会注意到 G 列中有一个工作日公式 目前 一旦我更新了配药日期 重新订购日期就会根据公式进行更新 基于安排的工作日 然后我对 G 列使用 SORT R
  • 我可以使用 jQuery 的 AJAX 将表单信息提交到 Google Spreadsheets 吗?

    我喜欢能够使用谷歌电子表格 但以视觉方式集成到我的网站中很棘手 所以我想我会重新创建他们的表单 一个简单的剪切 粘贴 通过 AJAX 提交表单 数据将转到电子表格 我可以将我的用户重定向到比谷歌默认的 谢谢你所做的一切 更漂亮的东西你刚刚做

随机推荐

  • 子进程模块无法运行命令

    我正在尝试对我的一组文件执行 Google 的 cpplint py 并将结果收集到一个日志文件中 但是 我还没有成功击败子流程模块 我当前的代码在这里 import os subprocess rootdir C users me Doc
  • 保存从 xmpp Strope si-filetransfer 接收到的文件

    我正在使用 strope si filetransfer js 插件在我的 Web 应用程序中实现文件传输 我能够在 iq 节中接收文件详细信息 我的问题是 如何从 iq 节中提取文件数据并下载 我提到的链接可以解决 https githu
  • 在 Visual Studio 2008 中调试时如何通过管道传输输出?

    我尝试进入项目属性 在配置属性下选择调试 并将命令参数设置为 gt out txt 当然不带引号 但是 当我运行该程序 使用 F5 时 我仍然在控制台上看到输出 并且没有创建 out txt 文件 这只是一个简单的 C Hello Worl
  • 如何“打印”处理不可打印值的字节数组

    我在这个论坛上看到了很多相关的问题和答案 但没有找到任何可以解决我的问题的内容 这个想法很简单 这是使用 Java 编程语言 我目前仅限于使用 Java 7 接收到一个字节数组 代表任何内容 某种有线格式 某种形式的编码数据 嵌入 文本 的
  • 使用 R 中的截止值对多列进行排序

    Given n列 我希望第一列按降序排列 直到达到截止值 然后对第二列进行排序 依此类推 解释起来有点棘手 所以这里有一个最简单情况的示例 有两列 df lt structure list x c 0 92 0 9 0 9 0 88 0 8
  • 如何从秘密短语(助记符)SOLANA 生成密钥对

    我正在使用 Solana 和幻影钱包 我有一个带有公钥的钱包 我有它的由 12 个单词组成的秘密短语 当我从我使用的秘密短语生成密钥对时 const getKeyPair mnemomic gt const seed bip39 mnemo
  • React原生加载css和js Webview

    我想使用 React Native 在 Web 视图中加载自定义 html 它适用于简单的 html 但我不知道如何将 javascript 从 js 文件加载到 Web 视图 看起来什么也没有发生 这是我的网络视图 var html h1
  • 如何在SQL中显示两个给定日期之间的所有日期

    使用 SQL Server 2000 如果开始日期是06 23 2008结束日期是06 30 2008 然后我需要查询的输出为 06 23 2008 06 24 2008 06 25 2008 06 30 2008 我创建了一个名为 Int
  • 跨域xmlhttp

    我正在编写这个 javascript 它将用于其他几个域 这些域调用 php 脚本 仅在我的域上 来返回数组 我正在使用 xmlhttp 在我的域上测试时它工作得很好 但是一旦从单独的域放置或调用 javascript 它就会完全崩溃 有人
  • FileDescriptor什么时候关闭?

    我的应用程序需要执行以下操作 Open a FileInputStream 并获得底层FileDescriptor via getFd 创建新的FileInputStream基于上述的对象FileDescriptor 到目前为止 我只需要一
  • Rails:创建父记录(如果不存在),同时创建子记录

    以下任何最佳实践 我有制造商模型 has many 库存 在我的新库存表单中 我想要一个映射到Manufacturer name的字段 以便当一个 从应用程序提交新的库存 searches for a manufacturer with t
  • 暂停 NSTimer

    我有一个UIView with a UITableView and a UIImageView在里面 这UITableView占据了上半部分UIView The UIImageView占据下半部分UIView 我正在使用一个NSTimer更
  • 将 ComboBox 添加到特定行的 datagridview

    我需要将下拉列表显示到多行中的某一特定行 我的 dataGridView 有 2 列 参数和值 我在代码中动态添加 3 行 对于所有 3 行 参数文本是固定的 用户无法修改 对于第一行 参数文本是 prm1 值文本将从下拉列表中选择 其他
  • Android:如何检测滚动何时结束

    我正在使用 GestureDetector SimpleOnGestureListener 的 onScroll 方法在画布上滚动大位图 当滚动结束时 我想重绘位图 以防用户想要进一步滚动 离开位图的边缘 但我看不到如何检测滚动何时结束 用
  • 如何从 Visual Studio Code UI 执行 dotty 代码

    我正在尝试使用Visual Studio Code运行点代码 我开始使用 IDEsbt launchIDE根据指示这一页 我还安装了Dotty Language Server and Code Runner扩展 Dotty 安装使用brew
  • 从字符串中提取正则表达式结果并将其写入变量

    我正在尝试编写一个 shell 脚本 该脚本在指定为参数 1 的文件中搜索正则表达式 并将找到的子模式写入我可以使用的变量中 假设我的脚本名为 dosth sh 并且我有一个文件 plot gp 其中包含以下行 set output tes
  • 将 Firebase 中的重复对象加载到 ListView 中

    当我向列表视图添加新消息时 会添加我拥有的消息和新消息 因此它会两次放置相同的信息 我想使用 Firebase 在列表视图中加载最后一条消息 我在 create 中添加了以下函数 firebase new Firebase FIREBASE
  • 如何在 C++ 中使用 new 声明二维数组?

    如何使用 new 声明二维数组 就像 对于 正常 数组我会 int ary new int Size but int ary new int sizeY sizeX a 无法工作 编译 b 无法完成 int ary sizeY sizeX
  • Android:从首选项中选择主题颜色

    我希望通过首选项设置我的应用程序导航抽屉的颜色按下项目 但我似乎找不到方法来做到这一点 我在我的首选项中创建了一个列表 其中使用十六进制颜色代码作为值 但我不知道如何在我的 java 类中使用这些值 帮助 尝试这个方法 首先在colors
  • 使用 onChange 检测注释更改

    Google 表格是否可以检测您何时使用 onChange 编辑笔记或插入新笔记 function onChange e var ss SpreadsheetApp getActiveSheet var s SpreadsheetApp g