Ошибка при назначении значения массива переменной в скрипте приложения - PullRequest
0 голосов
/ 21 сентября 2018

Я захватил диапазон данных в массиве.Мой столбец 3 массива остается постоянным, и только моя строка должна увеличиваться при назначении этого значения переменной matchindex.При назначении значения переменной я получаю ошибку , заявляющую

«Не читать свойство 3 из неопределенного».

Я получаю эту ошибку в строке при назначении matchindex = data[i+2][3].

Может кто-нибудь объяснить, что идет не так?

Ниже мой сценарий

function testrange() {
 var spreadsheet = SpreadsheetApp.getActive();
  var i=0;
  var temp1 =2;
  var temp2 =2;
  var startrow;
  var endrow;
  var matchindex;
  var ssVillage = spreadsheet.setActiveSheet(spreadsheet.getSheetByName('VillageName'),true);  
  var range = ssVillage.getDataRange();
  var data = range.getValues();
  var lastcol = ssVillage.getLastColumn();


for (i=0;i<data.length;i++)
{
  matchindex = data[i+2][3];

  temp1 = matchindex;
  if(temp1 !== temp2) {   

   // spreadsheet.setNamedRange(ssVillage.getRange("B"+startrow).getValue(),ssVillage.getRange("A"+startrow +":A"+endrow).activate() );    
      spreadsheet.setNamedRange(data[i+2][startrow],ssVillage.getRange("A"+startrow +":A"+endrow).activate() );            
      if (i+2 == matchindex) {
       startrow = (i+2);
       endrow = i+2;
      }      
      else {
        endrow = i+2;
      }
    }

  else {
    if (i+2 == matchindex) {
       startrow = (i+2);
       endrow = i+2;
      }      
      else {
        endrow = i+2;
      }
  }
  temp2 = matchindex;

  }
}  

1 Ответ

0 голосов
/ 21 сентября 2018

Вы повторяете цикл for от i = 0 до длины массива (скажем, L).В последних 2 итерациях значение (i+2) будет L, L+1.И определенно не будет индекса, равного длине массива или более того.Поскольку индексы L и L + 1 не существуют, значение data[i+2] будет undefined, следовательно, получит ошибку.

«Не читать свойство 3 из неопределенного».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...