Как выбрать диапазон из массива неизвестного размера? - PullRequest
0 голосов
/ 17 апреля 2019

Я хотел бы создать макрос, который будет извлекать данные на другом листе, но я не знаю заранее количество строк, и я хотел бы восстановить количество строк.ЛИСТ ДАННЫХ имеет разное количество строк каждый день или месяц, поэтому я не могу заранее определить количество строк.

Я пытался использовать функцию «GetRange», но в этом номере ничего нетнепустых ячеек, чтобы получить количество непустых строк.

Я тоже пытался создать фильтр, но у меня нет разрешения на белизну в документе.

function myFunction() {

   // Get the sheet with DATA active 
   var spreadsheet = SpreadsheetApp.getActive();
   spreadsheet.setActiveSheet(spreadsheet.getSheetByName('DataSheet'), true);


//how can i get the Range of the last non empty cells ??
  var range = spreadsheet.getRange("A2:Axxx"); 

//i want to have an integer (number of lines with data)
  var values = range.getValue(); 


// after i do somes operations in these data but it's not important.
  for(var i=2 ; i< values ; i++) {            

      spreadsheet.duplicateActiveSheet();
      spreadsheet.getActiveSheet().setName('Lettre Relance' + i);
      spreadsheet.getRange('C12').activate();
      spreadsheet.getCurrentCell().setFormula('=Relance!A'+i);
  }
}

Большое спасибо за ваш ответ!

1 Ответ

0 голосов
/ 17 апреля 2019

Обычно я использую код из Простое руководство по слиянию почты , чтобы прочитать данные всего листа в объект.Вы также можете использовать код из Faster, чтобы найти первую пустую строку , чтобы получить первую пустую строку, а затем установить свой диапазон на все, что находится до этой строки.Я использую код из ответа @Mogsdad, который я скопировал здесь:

/**
 * Mogsdad's "whole row" checker.
 */
function getFirstEmptyRowWholeRow() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getDataRange();
  var values = range.getValues();
  var row = 0;
  for (var row=0; row<values.length; row++) {
    if (!values[row].join("")) break;
  }
  return (row+1);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...