问题描述
基本上,我正在尝试执行以下功能:清除指定工作表中的指定范围的内容
function clearRange() { //replace 'Sheet1' with your actual sheet name var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1'); sheet.getRange('A1:Z1000').clearContent(); }
但是,我试图修改此功能:-避免要清除的工作表名称的硬编码,而只需在单元格中输入即可。
在电子表格中,我有3个不同的工作表:“ settings_sheet”,“ sheet1”和“ sheet2”。
这是我的规格:
1)在“ settings_sheet”中,我希望能够在单元格B3中写入要清除的工作表的名称,即“ sheet1”或“ sheet2”(不带引号)。
2)多亏了与脚本相关联的“ settings_sheet”中的UI按钮(插入->绘图),我想通过简单的单击清除工作表中B3中指定名称的内容
这是我尝试开发的脚本,到目前为止没有成功:
function clearSelectedSheet() {
var spreadsheet = SpreadsheetApp.openById("my spreadsheet ID");
var sheet = spreadsheet.getSheetByName('settings_sheet');
var range = sheet.getRange('B3');
var data = range.getValue();
if(data == "sheet1"){
var templatename = SpreadsheetApp.getActive().getSheetByName('sheet1');
templatename.getRange('A1:Z1000').clearContent();
}
if(data == "sheet2"){
var templatename = SpreadsheetApp.getActive().getSheetByName('sheet2');
templatename.getRange('A1:Z1000').clearContent();
}}
我知道如何整合UI按钮。 在此先感谢您对开发功能脚本的任何帮助!
1楼
尝试以下方法:
function clearSelectedSheet() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName('settings_sheet');
var range = sheet.getRange('B3');
var data = range.getValue();
var templatename = spreadsheet.getSheetByName(data);
templatename.getRange('A1:Z1000').clearContent();
}