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

How to code a script that clears (all) the content of a desired sheet (whose name is specified in a cell of another sheet)?

本文关键字:工作 单元格 何编写 另一个 内容 所有 清除 脚本 一个      更新时间:2023-09-26

基本上,我正在尝试做以下函数所做的事情:清除指定工作表中指定范围的内容

function clearRange() { //replace 'Sheet1' with your actual sheet name var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1'); sheet.getRange('A1:Z1000').clearContent(); }

然而,我正试图修改这个函数:-为了避免我想要清除的工作表名称的硬编码,而是简单地将其输入单元格。

在我的电子表格中,我有3个不同的工作表:即"settings_sheet","sheet1"answers"sheet2"。

这是我的规格:

1)在"settings_sheet"中,我希望能够在单元格B3中写入我想要清除的工作表的名称,"sheet1"或"sheet2"(不带引号)。

2)由于UI按钮(插入->图纸)在"settings_sheet",与脚本相关联,我想通过一个简单的点击表,其名称是在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按钮。提前感谢任何帮助开发一个功能脚本!

试试这个:

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();
}
相关文章: