通过从另一个工作表触发的脚本删除工作表中的单元格。 [Google工作表脚本]

时间:2020-02-27 15:05:45

标签: google-apps-script google-sheets

对于包含多个工作表的电子表格,我有一个脚本,通过该脚本,只需按一下按钮就可以删除特定范围内所有工作表中的数据。

现在我有一个主电子表格,该电子表格已链接到其他几个电子表格(及其包含的工作表)(导入范围,查询等)。

是否可以通过按一下所连接电子表格中的一个按钮,通过脚本删除某些范围内的数据,因此我想从主电子表格中触发此操作?!

要使用脚本从工作表中删除的数据是手动用户输入,因此不是来自主电子表格。在工作表1.A和1.B之间,应删除的范围/单元格有所不同

附上图表以更好地理解:

graph

到目前为止,我的脚本是:

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

}

1 个答案:

答案 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并更正其余工作表名称和范围。