【问题标题】:Deleting specific data from multiple Google Sheets从多个 Google 表格中删除特定数据
【发布时间】:2021-02-12 17:50:30
【问题描述】:

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

// 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

 }

我要具体更改什么以使其清除多个工作表而不是活动工作表?

【问题讨论】:

  • 我能问你问题中的脚本和I am trying to clear data from multiple sheets.的目标之间的关系吗?
  • 所以我正在建立一个定价表。对于我最终有 5-10 个标签的每个标签,这将是完全相同的表。我仅将当前脚本用于其中的明确公式功能部分。它目前清除我活动工作表上的指定单元格。我想要的是该代码同时清除每个选项卡上相同指定单元格中的数据,而不仅仅是当前活动选项卡。
  • 我没有看到任何“清除”数据的代码。也许您的意思是清除是用请求sheet.getRange('A1:U39').copyTo(ss.getRange('A1:U39')) 覆盖数据?如果是这样,请在下面查看我的答案。
  • 正确!对不起,是的,它不清楚,但从另一张纸上复制。通过使用下面的代码,“Data1”是它复制的位置,但是通过“sheet2”“sheet3”设置其他工作表,这不也只是从这些工作表中复制吗?我想我要问的是什么设置了我将从中复制的工作表以及我在哪里列出我想要清除的工作表?我确实尝试了下面的代码,但它仍然只清除了我的第一张工作表,没有其他工作表。
  • 我想通了……至少可以实现我所追求的目标。其他任何想要在这里做同样事情的人都是这样做的代码。

标签: google-apps-script google-sheets


【解决方案1】:
  • 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
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    相关资源
    最近更新 更多