Google apps script 读取单元地址并传递到一个范围

Google apps script 读取单元地址并传递到一个范围,google-apps-script,google-sheets,Google Apps Script,Google Sheets,有人能帮我吗 我试图创建一个基于两个变量“cel1”和“cel2”的范围,并将该范围复制到另一张图纸上 代码如下: function EXEMPLO() { var sheet1 = SpreadsheetApp.openById('1dpp7Ybge8LRb61axkiOolVFFPE6YuVuslOppxz-CU1g').getSheetByName('raw_data'); var sheet2 = SpreadsheetApp.openById('1dpp7Ybge8LRb61a

有人能帮我吗

我试图创建一个基于两个变量“cel1”和“cel2”的范围,并将该范围复制到另一张图纸上

代码如下:

function EXEMPLO() {
  var sheet1 = SpreadsheetApp.openById('1dpp7Ybge8LRb61axkiOolVFFPE6YuVuslOppxz-CU1g').getSheetByName('raw_data');
  var sheet2 = SpreadsheetApp.openById('1dpp7Ybge8LRb61axkiOolVFFPE6YuVuslOppxz-CU1g').getSheetByName('Dados');
  sheet1.getRange('A1').activate();
  do {
    sheet1.getActiveCell().offset(1,0).activate();
  }while (sheet1.getActiveCell().getValue() != 'Data');
  sheet1.getActiveCell().offset(1,0).activate();
  var cel1 = sheet1.getActiveRange(); \\ reading cell 1 address
  sheet1.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.DOWN).activate();
  sheet1.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.NEXT).activate();
  var cel2 = sheet1.getActiveRange(); \\ reading cell2 address
  sheet2.getRange('A1').activate(); 
  sheet2.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.DOWN).activate();
  sheet2.getActiveCell().offset(1,0).activate();
  sheet1.getRange(cel1+":"+cel2).copyTo(sheet2.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false); \\ try to copy the range to another sheet
};


忘掉所有这些激活和抵消

简单一点,你需要两个值。去拿吧

function EXEMPLO() {
  var sheet1 = SpreadsheetApp.openById('1dpp7Ybge8LRb61axkiOolVFFPE6YuVuslOppxz-CU1g').getSheetByName('raw_data');
  var sheet2 = SpreadsheetApp.openById('1dpp7Ybge8LRb61axkiOolVFFPE6YuVuslOppxz-CU1g').getSheetByName('Dados');
  var cell1=sheet1.getRange('A1').getValue();
  var cell2=sheet1.getRange('A2').getValue();
  sheet1.getRange(cell1+":"+cell2).copyTo(sheet2.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
};

忘掉所有这些激活和抵消

简单一点,你需要两个值。去拿吧

function EXEMPLO() {
  var sheet1 = SpreadsheetApp.openById('1dpp7Ybge8LRb61axkiOolVFFPE6YuVuslOppxz-CU1g').getSheetByName('raw_data');
  var sheet2 = SpreadsheetApp.openById('1dpp7Ybge8LRb61axkiOolVFFPE6YuVuslOppxz-CU1g').getSheetByName('Dados');
  var cell1=sheet1.getRange('A1').getValue();
  var cell2=sheet1.getRange('A2').getValue();
  sheet1.getRange(cell1+":"+cell2).copyTo(sheet2.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
};

要从单个单元格中读取值,请使用
getValue()

值得注意的是,有时您可以通过读取所需的所有单元格值来获得更好的性能结果,方法是取一个包含所有单元格的较大范围,然后使用
getValues()
一次获取所有值,最后使用link
values[i][k]
获取所需的特定单元格值,因为像
getValue()
这样的电子表格服务方法“昂贵”(与使用
值[i][k]
相比,它们花费了大量时间)


另外值得注意的是,Google Sheets宏记录器引入了大量的
activate()
,如果您了解如何通过使用范围引用来获取所需的范围,特别是如果引用是绝对的(并不真正依赖于活动单元格),则可以将其删除

要从单个单元格中读取值,请使用
getValue()

值得注意的是,有时您可以通过读取所需的所有单元格值来获得更好的性能结果,方法是取一个包含所有单元格的较大范围,然后使用
getValues()
一次获取所有值,最后使用link
values[i][k]
获取所需的特定单元格值,因为像
getValue()
这样的电子表格服务方法“昂贵”(与使用
值[i][k]
相比,它们花费了大量时间)

另外值得注意的是,Google Sheets宏记录器引入了大量的
activate()
,如果您了解如何通过使用范围引用来获取所需的范围,特别是如果引用是绝对的(并不真正依赖于活动单元格),则可以将其删除