如何使用Apps脚本从Google表格中删除一系列特定表格中所有不受保护的行

阿克塔鲁扎曼·利顿(Aktaruzzaman Liton)

我的Google表格中有几个保护范围,例如A2至F40,然后是A45至F90。我使用按钮(菜单-子菜单)执行此受保护范围。但是,在一系列特定的工作表中,几乎没有数据行受到保护,这些工作表的名称同时使用字母和数字(例如ICT4113,MATH4104或HUM4119)。很少有其他表的名称仅包含字母,不需要此功能。

如何在函数onOpen()内的整个特定工作表范围内删除那些不受保护的数据行,而无需任何触发器。刚要删除时,我将按一个子菜单。

Tanaike

我相信您的目标如下。

  • 您想使用Google Apps脚本完全删除特定工作表没有保护范围的行。
    • 您需要完成几个特定的​​工作表。
  • 您想通过Google Spreadsheet上的自定义菜单运行脚本。

为此,这个答案如何?该示例脚本的流程如下。

  1. 检索数据范围。
  2. 在保护范围内创建一个对象。这用于从清除的行中删除。
  3. 创建范围列表以使用该对象清除行。
  4. 删除不包含受保护范围的行的行。

示例脚本:

请复制以下脚本并将其粘贴到脚本编辑器中,并设置工作表名称,然后重新打开电子表格。这样,设置了自定义菜单。运行时myFunction,将删除没有受保护范围的行的单元格。

function onOpen() {
  SpreadsheetApp.getUi().createMenu('Custom Menu').addItem('run script', 'myFunction').addToUi();
}

function myFunction() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.getSheets().filter(s => /\d/.test(s.getSheetName())).forEach(sheet => {
    // 1. Retrieve data range.
    const dataRange = sheet.getDataRange();

    // 2. Create an object from the protected range. This is used for removing from the cleared rows.
    const protectedRanges = sheet.getProtections(SpreadsheetApp.ProtectionType.RANGE).map(e => {
      const r = e.getRange();
      const start = r.getRow();
      return {start: start, end: r.getNumRows() + start - 1};
    });

    // 3. Create range list for clearing rows using the object.
    let rangeList = [];
    for (let r = 2; r <= dataRange.getNumRows(); r++) {
      let bk = false;
      for (let e = 0; e < protectedRanges.length; e++) {
        if (protectedRanges[e].start == r) {
          r = protectedRanges[e].end;
          bk = true;
          break;
        }
      }
      if (!bk) rangeList.push(`A${r}:${r}`);
    }

    // 4. Delete the rows without the rows of the protected ranges.
    sheet.getRangeList(rangeList).getRanges().reverse().forEach(r => sheet.deleteRow(r.getRow()));
  });
}

参考文献:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用一系列ID的CSS设置表格

来自分类Dev

如何根据Google表格中的一系列值动态创建字符串

来自分类Dev

使用Google Apps脚本删除Google表格中的行

来自分类Dev

vim中的这一系列击键如何删除除带编号的行以外的所有内容?

来自分类Dev

如何查找和删除一系列单元格中的重复值,同时在 Google 表格中保留重复值的第一次出现?

来自分类Dev

如何有效地从大型numpy数组中删除一系列行?

来自分类Dev

如何使用awk或sed或grep删除hp unix上文件中的一系列行

来自分类Dev

在Google表格中的一系列值之间动态查找值

来自分类Dev

在 perl 中搜索和删除一系列行

来自分类Dev

如何从充当javascript中的行和列的一系列数组中找到所有排列?

来自分类Dev

如何在Google表格的单元格中获取值并针对一系列单元格测试其内容?

来自分类Dev

如何从数组中删除一系列值?

来自分类Dev

使用Apps脚本删除Google表格中的空白行后,是否要复制数据?

来自分类Dev

Google表格返回基于值的范围内的一系列连接值

来自分类Dev

如何在python中搜索一系列行?

来自分类Dev

更改Google脚本中所有表格的颜色

来自分类Dev

如何使用Spark处理一系列HBase行?

来自分类Dev

如何使用Google脚本修改电子表格中所有条形图的标题?

来自分类Dev

如何在excel中将一系列单元格与表格列进行比较

来自分类Dev

如何使用电子表格的Google脚本为所有人设置保护?

来自分类Dev

折叠Google表格中所有特定深度的组

来自分类Dev

使用API从Google表格中删除特定行

来自分类Dev

从Google表格中删除所有未使用的行和列

来自分类Dev

如何对数据条目进行排序,以便在Python或Google表格中将一系列数据组合在一起?

来自分类Dev

无法使用脚本从受保护范围的编辑权限中删除有效用户 - 谷歌表格

来自分类Dev

如何在电子表格文件中的所有工作表上运行Google Apps脚本?

来自分类Dev

使用特定文本隐藏行(修改代码)-Google Apps脚本/ Google表格

来自分类Dev

在bash脚本中的特定范围内创建一系列不同的随机数

来自分类Dev

我的问题是关于 Google 表格循环遍历一系列单元格和排名分数

Related 相关文章

  1. 1

    如何使用一系列ID的CSS设置表格

  2. 2

    如何根据Google表格中的一系列值动态创建字符串

  3. 3

    使用Google Apps脚本删除Google表格中的行

  4. 4

    vim中的这一系列击键如何删除除带编号的行以外的所有内容?

  5. 5

    如何查找和删除一系列单元格中的重复值,同时在 Google 表格中保留重复值的第一次出现?

  6. 6

    如何有效地从大型numpy数组中删除一系列行?

  7. 7

    如何使用awk或sed或grep删除hp unix上文件中的一系列行

  8. 8

    在Google表格中的一系列值之间动态查找值

  9. 9

    在 perl 中搜索和删除一系列行

  10. 10

    如何从充当javascript中的行和列的一系列数组中找到所有排列?

  11. 11

    如何在Google表格的单元格中获取值并针对一系列单元格测试其内容?

  12. 12

    如何从数组中删除一系列值?

  13. 13

    使用Apps脚本删除Google表格中的空白行后,是否要复制数据?

  14. 14

    Google表格返回基于值的范围内的一系列连接值

  15. 15

    如何在python中搜索一系列行?

  16. 16

    更改Google脚本中所有表格的颜色

  17. 17

    如何使用Spark处理一系列HBase行?

  18. 18

    如何使用Google脚本修改电子表格中所有条形图的标题?

  19. 19

    如何在excel中将一系列单元格与表格列进行比较

  20. 20

    如何使用电子表格的Google脚本为所有人设置保护?

  21. 21

    折叠Google表格中所有特定深度的组

  22. 22

    使用API从Google表格中删除特定行

  23. 23

    从Google表格中删除所有未使用的行和列

  24. 24

    如何对数据条目进行排序,以便在Python或Google表格中将一系列数据组合在一起?

  25. 25

    无法使用脚本从受保护范围的编辑权限中删除有效用户 - 谷歌表格

  26. 26

    如何在电子表格文件中的所有工作表上运行Google Apps脚本?

  27. 27

    使用特定文本隐藏行(修改代码)-Google Apps脚本/ Google表格

  28. 28

    在bash脚本中的特定范围内创建一系列不同的随机数

  29. 29

    我的问题是关于 Google 表格循环遍历一系列单元格和排名分数

热门标签

归档