我有一个包含一打功能的脚本,可用于工作中的各种任务。它一直都运行良好,我从未将其部署为Web应用程序或API(而且我也从未能够理解它们是什么或如何使用它们)。 现在,我为有问题的工作表添加了一些保护。一个特定功能将值添加到受保护的范围。保护生效后,由于我的员工没有明确的手动更改这些保护范围的权限,因此不允许我的员工执行相关功能。 (允许通过脚本进行更改)。
所以我的问题有点像是GAS的新手,我应该如何使这个特定功能每次都像我一样执行?
P.S:我对此主题做了很多研究,但老实说我无法弄清楚。我知道我需要一个叫做doGet或doPost的东西,但我不知道它们是什么,如何使用它们或做什么。查找它们只会让我更加困惑。
将感谢您提供的任何帮助或指导。我以为这不是什么大问题,但最近3个小时我一直在处理它,这让我发疯。
函数的外观如下:(C列是受保护的范围,您可以看到某些代码最终在某个时候越过了它)
function jun() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('E2:AG2').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Expenses 2019'), true);
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()).activate();
sheet = spreadsheet.getActiveSheet();
sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()).createFilter();
spreadsheet.getRange('B1').activate();
var criteria = SpreadsheetApp.newFilterCriteria()
.setHiddenValues(['1', '2', '3', '4', '6', '7', '8', '9', '10', '11', '12', ''])
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(2, criteria);
spreadsheet.getRange('A1').activate();
criteria = SpreadsheetApp.newFilterCriteria()
.setHiddenValues(['Total'])
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(1, criteria);
spreadsheet.getRange('245:245').activate();
spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('\'EXPENSERIZER\'!E2:AG2').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
spreadsheet.getActiveSheet().getFilter().remove();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('EXPENSERIZER'), true);
spreadsheet.getRange('C11').activate();
};