我有一个 Google 表格,其中包含一份摘要表和大约。20 个子选项卡。在摘要表上,我创建了一个下拉列表,其中列出了每个子选项卡。
当用户从下拉列表中选择特定的子选项卡然后单击“清除”按钮时,我希望在选项卡中清除指定行范围内的金额。
目前我有一个单独的函数来清除每个工作表。我尝试将其合并为一个函数。
在附图中,下拉列表位于
Summary!J4
下拉列表的片段
--> Planning
--> Framing
--> Foundation
--> ALL SHEETS
我附上了代码片段和图片以供澄清。非常感谢任何帮助。谢谢!
function clearPlanningfields() {
var myGoogleSheet=SpreadsheetApp.getActiveSpreadsheet();
var shUserForm=myGoogleSheet.getSheetByName("Planning");
var ui=SpreadsheetApp.getUi();
var response=ui.alert("Reset Confirmation", "Do you want to Clear the Sheets?", ui.ButtonSet.YES_NO);
if(response==ui.Button.NO){
return;
}
shUserForm.getRange('H5:H13').setValue('');
shUserForm.getRange('H17:H26').setValue('');
shUserForm.getRange('H30:H31').setValue('');
shUserForm.getRange('H35:H41').setValue('');
shUserForm.getRange('O5:O13').setValue(false);
shUserForm.getRange('O17:O26').setValue(false);
shUserForm.getRange('O30:O31').setValue(false);
shUserForm.getRange('O35:O41').setValue(false);
shUserForm.getRange('N4').setValue(0.00);
shUserForm.getRange('N16').setValue(0.00);
shUserForm.getRange('N29').setValue(0.00);
shUserForm.getRange('N34').setValue(0.00);
myGoogleSheet.toast("Amounts have been Reset from selected Sheet");
return true;
}
function clearFramingfields() {
var myGoogleSheet=SpreadsheetApp.getActiveSpreadsheet();
var shUserForm=myGoogleSheet.getSheetByName("Framing");
var ui=SpreadsheetApp.getUi();
var response=ui.alert("Reset Confirmation", "Do you want to Clear the Sheets?", ui.ButtonSet.YES_NO);
if(response==ui.Button.NO){
return;
}
shUserForm.getRange('H5:H19').setValue('');
shUserForm.getRange('H23:H42').setValue('');
shUserForm.getRange('H46:H66').setValue('');
shUserForm.getRange('H70:H84').setValue('');
shUserForm.getRange('O5:O19').setValue(false);
shUserForm.getRange('O23:O42').setValue(false);
shUserForm.getRange('O46:O66').setValue(false);
shUserForm.getRange('O70:O84').setValue(false);
shUserForm.getRange('N4').setValue(0.00);
shUserForm.getRange('N22').setValue(0.00);
shUserForm.getRange('N45').setValue(0.00);
shUserForm.getRange('N69').setValue(0.00);
myGoogleSheet.toast("Amounts have been Reset from selected Sheet");
return true;
}
function clearFoundationfields() {
var myGoogleSheet=SpreadsheetApp.getActiveSpreadsheet();
var shUserForm=myGoogleSheet.getSheetByName("Foundation");
var ui=SpreadsheetApp.getUi();
var response=ui.alert("Reset Confirmation", "Do you want to Clear the Sheets?", ui.ButtonSet.YES_NO);
if(response==ui.Button.NO){
return;
}
shUserForm.getRange('H5:H10').setValue('');
shUserForm.getRange('H14:H22').setValue('');
shUserForm.getRange('H26:H41').setValue('');
shUserForm.getRange('H45:H55').setValue('');
shUserForm.getRange('H59:H62').setValue('');
shUserForm.getRange('O5:O10').setValue(false);
shUserForm.getRange('O14:O22').setValue(false);
shUserForm.getRange('O26:O41').setValue(false);
shUserForm.getRange('O45:O55').setValue(false);
shUserForm.getRange('O59:O62').setValue(false);
shUserForm.getRange('N4').setValue(0.00);
shUserForm.getRange('N13').setValue(0.00);
shUserForm.getRange('N25').setValue(0.00);
shUserForm.getRange('N44').setValue(0.00);
shUserForm.getRange('N58').setValue(0.00);
myGoogleSheet.toast("Amounts have been Reset from selected Sheet");
return true;
}
建议
也许您可以尝试下面这个经过调整的脚本。这会根据选定的工作表选项卡自动识别要清除的行。
脚本
演示
例如,从摘要表选项卡的下拉菜单中选择“框架”选项卡。
这是日志结果: