如何编写一个脚本来清除(全部)所需工作表的内容(其名称在另一个工作表的单元格中指定)?

时间:2015-07-16 08:43:37

标签: javascript excel function google-sheets formula

基本上,我正在尝试执行以下功能:清除指定工作表中的指定范围的内容

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 个答案:

答案 0 :(得分:0)

请改为尝试:

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