Прочитать адрес ячейки и перейти к диапазону - PullRequest
0 голосов
/ 23 февраля 2020

Кто-нибудь может мне помочь?

Я пытаюсь создать диапазон на основе 2 переменных "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
};

Ответы [ 2 ]

1 голос
/ 24 февраля 2020

Чтобы прочитать значение из одной ячейки, используйте getValue();

Стоит отметить, что в некоторых случаях вы могли получить лучшие результаты производительности, считывая все нужные значения ячеек, беря больший диапазон, который охватывает все ячейки, затем используйте getValues(), чтобы получить все значения за один проход, и, наконец, используйте ссылку values[i][k], чтобы получить определенное значение ячейки c, которое вам нужно, потому что методы службы электронных таблиц, такие как getValue(), "дороги" "(они занимают много времени по сравнению с использованием values[i][k])

Также стоит отметить, что макрос-рекордер Google Sheets вводит много activate(), которые могут быть удалены, если вы узнаете как получить нужные диапазоны, используя ссылку на диапазон, особенно если ссылки являются абсолютными (на самом деле не зависит от активной ячейки)

1 голос
/ 23 февраля 2020

Забудьте обо всех этих активациях и смещениях

Упростите вам два значения. Просто go получите их.

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);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...