我在一个项目中有一个子功能,我可以在复制工作表时复制保护。这已经工作了几个月没有问题。运行它时,突然出现错误“服务错误:电子表格”。我知道它在星期天工作没问题,并且代码没有更改。通过一系列Logger语句,我知道错误发生在行
var p = sheet.getProtections(SpreadsheetApp.ProtectionType.SHEET)[0];
我已经做了一些测试,看来大多数保护类命令正在触发该错误。我已经完成了一次Google搜索,只能找到15个小时前与某人遇到类似但略有问题的其他相关帖子。在我看来,这是Google方面的问题。任何人都可以确认或提供任何有关如何进行的见解吗?他们是否有可能在做某事并且很快就会解决?
function DuplicateProtections(Week) {
//Duplicates the selected Template keeping all the protections
var sheet = ss.getSheetByName(Week);
var sheet2 = sheet.copyTo(ss).setName('Temp');
var p = sheet.getProtections(SpreadsheetApp.ProtectionType.SHEET)[0];
var p2 = sheet2.protect();
p2.setDescription(p.getDescription());
p2.setWarningOnly(p.isWarningOnly());
if (!p.isWarningOnly()) {
p2.removeEditors(p2.getEditors());
p2.addEditors(p.getEditors());
}
var ranges = p.getUnprotectedRanges();
var newRanges = [];
for (var i = 0; i < ranges.length; i++) {
newRanges.push(sheet2.getRange(ranges[i].getA1Notation()));
}
p2.setUnprotectedRanges(newRanges);
}
答案 0 :(得分:4)
在Internet上搜索有关您的问题的信息时,我在Google Issue Tracker上遇到了以下问题:
Apps Script Set and Get Protection Service Error
似乎很多人都遇到了与您相同的问题,并且所有问题都始于昨天(2020年2月5日)。您可以点击此页面左上角的问题编号旁边的☆,因为它可以让Google知道更多人遇到此问题,因此更有可能更快地看到它。
我希望这对您有用。