简体   繁体   English

Google Sheet 脚本重置下拉框

[英]Google Sheet script reset drop down boxes

I have a spreadsheet with a tab for each day of the week.我有一个电子表格,其中包含一周中的每一天的标签。 On each tab there are several dropdown boxes that I would like to reset at the beginning of the week to either "Select" or "0".在每个选项卡上都有几个下拉框,我想在一周开始时将它们重置为“选择”或“0”。 The cells effected are the exact same on each tab.受影响的单元格在每个选项卡上完全相同。 I have identified the cells that need to be reset to "Select" and the cells that need to be reset to "0".我已经确定了需要重置为“选择”的单元格和需要重置为“0”的单元格。 Is this possible?这可能吗? I don't want to clear the sheet because it will clear the drop down lists.我不想清除工作表,因为它会清除下拉列表。

Below is what I have done already, but it won't save:以下是我已经完成的,但它不会保存:

var sheet = SpreadsheetApp.getActive().getSheetByName('Wednesday').getSheetByName('Thursday').getSheetByName('Friday').getSheetByName('Saturday').getSheetByName('Monday').getSheetByName('Tuesday');
var resetselectrange ('B23', 'C4', 'G4', 'K4', 'O4', 'S4', 'A7:A16', 'E7:E16', 'I7:I16', 'M7:M16', 'Q7:Q16', 'A19:A23', 'E19:E23', 'I19:I23', 'M19:M23', 'Q19:Q23', 'A26:A29', 'E26:E29', 'I26:I29', 'M26:M29', 'Q26:Q29', 'A38:A41', 'E38:E41', 'I38:I41', 'M38:M41', 'Q38:Q41');
var resetzerorange ('C7:C16', 'G7:G16', 'K7:K16', 'O7:O16', 'S7:S16', 'C19:C23', 'G19:G23', 'K19:K23', 'O19:O23', 'S19:S23', 'C26:C29', 'G26:G29', 'K26:K29', 'O26:O29', 'S26:S29', 'C38:C41', 'G38:G41', 'K38:K41', 'O38:O41', 'S38:S41');
var clearrange ('F2', 'A32', 'E32', 'I32', 'M32', 'Q32');

I'm obviously not an expert at this, and apparently my logic is not the correct logic.我显然不是这方面的专家,显然我的逻辑不是正确的逻辑。

var sheet = SpreadsheetApp.getActive().getSheetByName('Wednesday').getSheetByName('Thursday').getSheetByName('Friday').getSheetByName('Saturday').getSheetByName('Monday').getSheetByName('Tuesday');
var resetselectrange ('B23', 'C4', 'G4', 'K4', 'O4', 'S4', 'A7:A16', 'E7:E16', 'I7:I16', 'M7:M16', 'Q7:Q16', 'A19:A23', 'E19:E23', 'I19:I23', 'M19:M23', 'Q19:Q23', 'A26:A29', 'E26:E29', 'I26:I29', 'M26:M29', 'Q26:Q29', 'A38:A41', 'E38:E41', 'I38:I41', 'M38:M41', 'Q38:Q41');
var resetzerorange ('C7:C16', 'G7:G16', 'K7:K16', 'O7:O16', 'S7:S16', 'C19:C23', 'G19:G23', 'K19:K23', 'O19:O23', 'S19:S23', 'C26:C29', 'G26:G29', 'K26:K29', 'O26:O29', 'S26:S29', 'C38:C41', 'G38:G41', 'K38:K41', 'O38:O41', 'S38:S41');
var clearrange ('F2', 'A32', 'E32', 'I32', 'M32', 'Q32');

The identified cells will be changed to "Select", Zero, or will clear entirely.已识别的单元格将更改为“选择”、零或完全清除。

Several points:几点:

Below is a sample code that will reset dropboxes in the specified ranges, I would like to encourage you to study the references provided to obtain a better understanding for Apps Script and Javascript (on which Apps Script is based) and being able to adapt this code to your needs as desired.下面是一个示例代码,它将在指定范围内重置保管箱,我想鼓励您研究提供的参考资料,以便更好地理解 Apps Script 和 Javascript(Apps Script 所基于)并能够适应此代码根据您的需要。

Sample code:示例代码:

function myFunction() {
  var ss=SpreadsheetApp.getActive();
  //designates sheets as an array that can contain multiple entries
  var sheets=[];
  //The following procedure could be simplified if you would like to select all sheets or e.g. the first 6 sheets of a spreadsheet
  sheets.push(ss.getSheetByName('Wednesday'));
  sheets.push(ss.getSheetByName('Thursday'));
  sheets.push(ss.getSheetByName('Friday'));
  sheets.push(ss.getSheetByName('Saturday'));
  sheets.push(ss.getSheetByName('Monday'));
  sheets.push(ss.getSheetByName('Tuesday'));
  for(var i=0;i<sheets.length;i++){
    var resetselectrange=sheets[i].getRangeList(['B23', 'C4', 'G4', 'K4', 'O4', 'S4', 'A7:A16', 'E7:E16', 'I7:I16', 'M7:M16', 'Q7:Q16', 'A19:A23', 'E19:E23', 'I19:I23', 'M19:M23', 'Q19:Q23', 'A26:A29', 'E26:E29', 'I26:I29', 'M26:M29', 'Q26:Q29', 'A38:A41', 'E38:E41', 'I38:I41', 'M38:M41', 'Q38:Q41']).setValue(2);
    var resetzerorange=sheets[i].getRangeList(['C7:C16', 'G7:G16', 'K7:K16', 'O7:O16', 'S7:S16', 'C19:C23', 'G19:G23', 'K19:K23', 'O19:O23', 'S19:S23', 'C26:C29', 'G26:G29', 'K26:K29', 'O26:O29', 'S26:S29', 'C38:C41', 'G38:G41', 'K38:K41', 'O38:O41', 'S38:S41']).setValue('Select');
    var clearrange=sheets[i].getRangeList(['F2', 'A32', 'E32', 'I32', 'M32', 'Q32']).clear();
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM