首页 > 解决方案 > 从多个 Google 表格中删除特定数据

问题描述

我正在尝试从多张纸上清除数据。我有一个适用于我需要的当前活动工作表和数据范围的代码,但我无法终生弄清楚如何从多个工作表中清除相同的数据。这是代码:

// This section adds the top menu
   function onOpen() {
     SpreadsheetApp.getUi().createMenu('Reset')
      .addItem("Formulas Only", "ResetFormulas")
      .addItem("Entire Page", "ResetPage")
      .addToUi()
}

// This section makes a button to reset the whole page copies the entire page
   function ResetPage() {
     var ss = SpreadsheetApp.getActiveSpreadsheet();
     var sheet = ss.getSheetByName('Data1');  // Enter tab name of what you’re copying from
     sheet.getRange('A1:U39').copyTo(ss.getRange('A1:U39')) //enter entire tab range

}
// This section copies only the cells you specify
   function ResetFormulas() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName('Sheet12'); // Enter tab name here of what you’re copying 
from
//Header
  sheet.getRange('B6:E20').copyTo(ss.getRange('B6:E20')) //first range you’re copying
  sheet.getRange('N6:Q20').copyTo(ss.getRange('N6:Q20')) //next range
  sheet.getRange('B25:E39').copyTo(ss.getRange('B25:E39')) //etc
  sheet.getRange('N25:Q39').copyTo(ss.getRange('N25:Q39')) //you get it

 }

我将具体更改什么以使其清除多张而不是活动的一张?

标签: google-apps-scriptgoogle-sheets

解决方案


  • 该行sheet.getRange('A1:U39').copyTo(ss.getRange('A1:U39'))指定应将数据复制到'A1:U39'活动电子表格中的范围内
  • 它没有指定范围位于哪个工作表中,这就是为什么 Apps 脚本假定您要复制到活动工作表中
  • 如果您想选择不同的工作表 - 您需要指定工作表

样本:

   function ResetPage() {
     var ss = SpreadsheetApp.getActiveSpreadsheet();
     var sheet = ss.getSheetByName('Data1');  // Enter tab name of what you’re copying from
     var sheet2 = ss.getSheetByName('Data2');  // Enter tab name of what you’re copying from
     sheet.getRange('A1:U39').copyTo(sheet2.getRange('A1:U39')) //enter entire tab range
  }

推荐阅读