首页 文章

根据其他Google表格单元格值,删除Google表格中的行

提问于
浏览
0

是否可以在另一个Google工作表中编写一个谷歌脚本,该脚本将根据给定范围的单元格值删除Google表格中的行?

我已经完成了一些关于如何在同一个google工作表中完成所有工作的研究,但是我编写google工作表脚本的经验有限使我无法理解我所描述的内容是否可能,以及如何实现 .

这是我到目前为止的一个脚本 . 如果列F中的单元格包含单词“id:123456”,这将删除我的活动电子表格范围内的行 . 我希望能够做的是修改此代码,以便在找到单词“id:123456”时,它将查找另一个Google表格的另一列,并删除包含“id:123456”的行 .

function onEdit() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getSheetByName('Sheet1'); // change to your own
  var values = s.getDataRange().getValues();

  for (var row in values)
    if (values[row][6] == 'id:123456')

      s.deleteRow(parseInt(row)+1);
};

1 回答

  • 2

    我没有测试过这段代码,因此您可能需要进行一些修改才能成功运行 . 但基本的想法很简单:一次打开两张纸,并根据第一张纸上的if进行第二张纸的更改 .

    var ss1 = SpreadsheetApp.getActiveSpreadsheet();
    var ss2 = SpreadsheetApp.getByID(0); //Change to the other sheet's ID, or somehow open it.
    var s1 = ss1.getSheetByName('Sheet1'); // change to your own
    var s2 = ss2.getSheetByName('Sheet1'); // change to your own
    var values = s1.getDataRange().getValues();
    
    for (var row in values)
      if (values[row][6] == 'id:123456')
        var other_values = s2.getDataRange().getValues();
          for (var other_row in other_values)
            if (other_values[row][6] == 'id:123456')
              s2.deleteRow(parseInt(other_row)+1);
    

    主要的事情是担心和测试:我复制了你的删除代码,但由于我们要删除行,除非我们从底部开始,否则我们可能会开始丢失 . (假设10行中的第4行和第8行包含要删除的内容;您可能最终删除4,其中8到7,但是我们仍然删除第8行 - 这意味着我们错过了我们应该删除的行删除了我们不应该有的一行 . )

相关问题