如何根据sheet1中提到的范围复制Google工作表中的行数

问题描述 投票:0回答:1

在sheet1中有2列。

在第一列中有数字6,在第二列中有数字20。

这意味着,Sheet2中从第6行到第20行的所有数据都必须复制到Sheet3中。

所以将来,如果我们更改工作表sheet1中的数字,则数据将根据这些数字进行流动

有人可以帮助我实现这一目标。

javascript google-apps-script google-sheets
1个回答
0
投票

[Apps Script具有方法copyTo,文档中包含一个示例:

// The code below copies the first 5 columns over to the 6th column.
var sheet = SpreadsheetApp.getActiveSheet();
var rangeToCopy = sheet.getRange(1, 1, sheet.getMaxRows(), 5);
rangeToCopy.copyTo(sheet.getRange(1, 6));

您可以使该示例适合您的问题,但需要进行两个修改:

  1. 而不是将范围复制到同一张纸中的范围-定义两个不同的纸并将其从一个纸复制到另一个纸
  2. [使用方法getRange(row, column, numRows, numColumns)定义范围而不是分配给参数静态数字时,请从电子表格中动态获取值。

示例:

function myFunction() {
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet1 = spreadsheet.getSheetByName("Sheet1");
  var sheet2 = spreadsheet.getSheetByName("Sheet2");
  var sheet3 = spreadsheet.getSheetByName("Sheet3");
  //adapt the ranges to the real cells contianing the row information
  var startRow = sheet1.getRange("A1").getValue();
  var endRow = sheet1.getRange("B1").getValue();
  var rowNumber = endRow-startRow+1;
  var rangeToCopy = sheet2.getRange(startRow, 1, rowNumber, sheet2.getLastRow());
  rangeToCopy.copyTo(sheet3.getRange(startRow, 1));
}

© www.soinside.com 2019 - 2024. All rights reserved.