对于包含多个工作表的电子表格,我有一个脚本,通过该脚本,只需按一下按钮就可以删除特定范围内所有工作表中的数据。
现在我有一个主电子表格,该电子表格已链接到其他几个电子表格(及其包含的工作表)(导入范围,查询等)。
是否可以通过按一下所连接电子表格中的一个按钮,通过脚本删除某些范围内的数据,因此我想从主电子表格中触发此操作?!
要使用脚本从工作表中删除的数据是手动用户输入,因此不是来自主电子表格。在工作表1.A和1.B之间,应删除的范围/单元格有所不同
附上图表以更好地理解:
到目前为止,我的脚本是:
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Delete User Input Data')
.addItem(
'Delete Data now',
'userActionResetMultipleSheetsByRangesAddresses'
)
.addToUi();
}
function userActionResetMultipleSheetsByRangesAddresses() {
var sheetNames = [
{ name: 'Sheet1.A', rangesAddressesList: ['Y3:AG99'] },
{ name: 'Sheet1.B', rangesAddressesList: ['AI3:AX99'] },
];
sheetNames.forEach(function(sn) {
var sheet = SpreadsheetApp.getActive().getSheetByName(sn.name);
if (sheet) {
resetByRangesList_(sheet, sn.rangesAddressesList);
}
});
}
function resetByRangesList_(sheet, rangesAddressesList) {
sheet.getRangeList(rangesAddressesList).clearContent();
}
答案 0 :(得分:1)
我认为您可以使用类似这样的东西:
function userActionResetMultipleSheetsByRangesAddresses() {
var ss=[{id:'',name:'Sheet1.A', rangesAddressesList: ['Y3:AG99'] },{id:'',name:'Sheet1.B',rangesAddressesList: ['AI3:AX99'] },
{id:'',name:'Sheet2.A', rangesAddressesList: ['Y3:AG99'] },{id:'',name:'Sheet2.B',rangesAddressesList: ['AI3:AX99'] },
{id:'',name:'Sheet3.A', rangesAddressesList: ['Y3:AG99'] },{id:'',name:'Sheet3.B',rangesAddressesList: ['AI3:AX99'] }
];
ss.forEach(function(e) {
var sheet = SpreadsheetApp.openById(e.id).getSheetByName(e.name);
if(sheet){
sheet.getRangeList(e.rangesAddressesList).clearContent();
}
});
}
您只需添加电子表格ID并更正其余工作表名称和范围。