Google Script可在电子表格中的特定标签上运行

时间:2016-09-01 09:19:45

标签: google-apps-script

我有一张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 {

 }
}

我通过每张纸上的按钮运行该脚本。

必须有一种方法可以运行一个脚本,该脚本将循环遍历所有个人表并清除每个人的数据。该脚本必须从包含所有用户名称的范围中获取相应的工作表名称。

这可能吗?

有人可以帮我解决这个问题吗?

由于

1 个答案:

答案 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();
   })  
 }