我有一张Google表格,其中包含一个个人标签,每个标签的名称与个人相关。此电子表格中有大约100人,每个人都有自己的标签。
在每个月末,我需要从一系列未受保护的范围中清除上个月的数据。
目前我必须在每个标签上运行一次脚本100次:
function clearData() {
// assign this to a button on each sheet
// check user really wants to clear data
var ui = SpreadsheetApp.getUi();
var response = ui.alert('Are you sure you want to clear data for this month?', ui.ButtonSet.YES_NO);
// Process the user's response.
if (response == ui.Button.YES) {
// get the name of the current sheet
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
var sheets = [ss,ss,ss];
['D2:D2', 'D4:AH9','D11:AH40'].forEach(function (r, i) {
SpreadsheetApp.getActive().getSheetByName(sheets[i]).getRange(r).clearContent();
})
} else {
}
}
我通过每张纸上的按钮运行该脚本。
必须有一种方法可以运行一个脚本,该脚本将循环遍历所有个人表并清除每个人的数据。该脚本必须从包含所有用户名称的范围中获取相应的工作表名称。
这可能吗?
有人可以帮我解决这个问题吗?
由于
答案 0 :(得分:1)
你可以在你的文档中循环工作表
var doc = SpreadsheetApp.openById(DOC_ID);
var sheets = doc.getSheets();
for(sheet in sheet) {
var cells = [ss,ss,ss];
['D2:D2', 'D4:AH9','D11:AH40'].forEach(function (r, i) {
sheet(cells[i]).getRange(r).clearContent();
})
}