当前位置: 首页 > 知识库问答 >
问题:

仅在值已更改的工作表上执行onedit代码

童浩言
2023-03-14

我想使“onedit”仅在值已更改的工作表上工作。

[sheet1]如果在第7列中输入值,则需要在[sheet1]第6列中写入时间
或[sheet2]如果在第7列中输入值,则希望在[sheet2]第6列中写入时间。

不要在[sheet5]上工作。

但是时间也出现在我不想要的[表2]和[表3]中。

请帮帮我。

function onEdit(e) {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    ["sheet1", "sheet2", "sheet3"].forEach(function (e) {
        var sheet = ss.getSheetByName(e);
        var activeCell = sheet.getActiveCell();
        var col = activeCell.getColumn();
        var row = activeCell.getRow();
        if (col == 7 ) {
            sheet.getRange(row, col - 1).setValue(new Date()).setNumberFormat('MM-dd-hh-mm'); // change the display format to your preference here
        }
    }
)}

共有1个答案

祁兴运
2023-03-14

为什么工作表名称有硬编码字符串?只需检查传递给onEdit(e)函数的事件对象的属性,即可获得已编辑的工作表:

function onEdit(e) {

   //Get the edited range
    var editedRange = e.range;

    //Get the sheet 
   var editedSheet = editedRange.getSheet();
}
 类似资料:
  • 我有一个用于Google Sheets的“onEdit”脚本,但只希望它在一张工作表上工作: 如何更改脚本,使其仅在工作表中的一张工作表上工作?

  • 问题内容: 我有一个,并且有一个侦听器连接到它。 现在,即使用户只是重新选择了先前选择的值,每次用户从下拉菜单中“选择”某项时,事件都会触发。 如果组合框的选定值与选定前的值不同,有什么方法可以仅触发事件? 我想我可以将组合框的值存储在不同的字段中,并在每次事件触发时将其进行比较,这似乎有点过头了。我有20个左右这样的组合框。我宁愿不要再有20个变量来存储值,这样事件就不会触发。 一定有更好的方法

  • 我使用重定向脚本将行复制到新的电子表格。当我输入正确的单元格值(“一次性服务”进入第3列)时,工作正常。但是我有我的电子表格与Zapier链接,当值被Zap/粘贴进去时,该行不会被复制。

  • 问题内容: 我正在我们的Jenkins CI服务器中运行单元测试和Selenium测试。众所周知,测试需要很长时间才能在大型项目中运行。 是否有Java工具/框架只能触发其相应源代码已更改的测试?这是因为并非每次对SCM的提交都会影响源代码的所有区域… 我正在使用Cobertura进行代码覆盖,并使用Surefire进行报告。 编辑:我找到了Atlassian Clover,但我正在寻找免费的解决

  • 在PostgreSQL 9.5中出现了冲突更新/无操作功能。创建服务器和外部表将在PostgreSQL 9.2版本中出现。 当我对外部表使用ON CONFLICT DO UPDATE时,它不起作用,但当我对普通表运行相同的查询时,它起作用。下面给出了问题。 //对于普通表 O/P:查询成功返回:一行受影响,执行时间为5毫秒。 //对于外部表概念 //foreign_app为foreign tabl

  • 我只希望脚本在“Trip 1”到“Trip 3”的工作表上运行。 这是我正在使用的脚本: