gpt4 book ai didi

google-sheets - 如何在 Google 表格中搜索和删除命名的保护范围?

转载 作者:行者123 更新时间:2023-12-02 03:16:08 24 4
gpt4 key购买 nike

我正在 Google 表格中编写一个脚本,它有选择地锁定一大块单元格,并且每天都需要将更多行单元格包含到同一 protected 范围内。

到目前为止,该脚本在定位需要保护的行并在每次运行时创建一个新的 protected 范围方面一直有效——但是每次运行时(我想在打开时)它都会创建另一个 protected 范围范围,另一个,另一个。我已将 protected 范围命名为“历史”,但我想不出一种方法来在下一次运行时仅取消对该范围的保护,然后保护一个新范围。

工作表中还有其他 protected 单元格,所以我不能简单地删除所有保护然后继续 - 我需要能够删除这个,特别是,然后从那里开始。由于被锁定的单元格范围会不断变化,我需要能够让脚本专门查找这一范围。

任何想法表示赞赏!

最佳答案

要更新现有保护,您首先必须“获取”它。我找不到直接执行此操作的简单方法,但您可以在工作表(或整个电子表格)上获得所有保护,然后遍历它们以找到您想要的保护。

var protections = ws.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var p in protections) {
if (protections[p].getDescription() == 'History') {
var protection = protections[p];
break;
}
}

现在您可以使用 protection.setRange 方法更新其范围而无需创建新的保护:

var rangeNew = ws.getRange('A1:C3');
protection.setRange(rangeNew);

这是工作表的文档 getProtectionsType与保护setRange方法。请注意,使用命名范围执行所有这些操作可能会更好,您可以使用与保护相同的方式获取和更新命名范围。

关于google-sheets - 如何在 Google 表格中搜索和删除命名的保护范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36973333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com