错误:无法将数据数组转换为(类)

时间:2016-03-10 03:13:17

标签: arrays google-apps-script google-sheets

我仍然是JS和GAS的新手,我担心我还不能很好地理解阵列。非常感谢您的帮助。

在此脚本之前,我有另一个脚本,它将列表中的信息提取到格式化为发票的电子表格中。然后,用户对发票进行更改,并将该更改再次保存回与从中提取数据的完全相同的行。这只是一种以用户友好的格式更新发票更改的方法。

当我在下面运行我的脚本时,我得到一个错误,说它“无法转换”...数组中的数据列表...“to(class)”...文件的名称。

我担心我对数组类知之甚少,无法解决这个问题。我找到了同样问题的其他问题和答案,但是如果我找到了一个问题,我就不太了解这个问题并将其应用到我的情况中。

错误发生在第133行(哦,非常接近于运行整个脚本)。

function overwriteInvoice() {
  
  var ui = SpreadsheetApp.getUi();
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName("Invoice");
  
  
  
  //start change customer name into customer code
  var customerName = sheet.getRange('I2').getValue();
  var ccsheet = ss.getSheetByName("CustomerCodes");
  var lastRow = ccsheet.getLastRow();
  //check how many rows it found
  Logger.log("lastRow: " + lastRow);
  var lookUp = ccsheet.getRange(2, 1, lastRow, 3).getValues();
  for (nn=0; nn<lookUp.length; ++nn) {
    if (lookUp[nn][0] == customerName) {break}
  }
  var customerCode = lookUp[nn][1];
  //check customer code to make sure it is returning correct info.
  Logger.log("customerCode: " + customerCode);
  //end change customer name into customer code
  
  
  //start build array
  var arrayOfData = [];
  
  arrayOfData[0] = sheet.getRange('G2');//invoiceorquote
  arrayOfData[1] = sheet.getRange('C10');//invoicequote number
  arrayOfData[2] = sheet.getRange('C9');//date
  arrayOfData[3] = customerCode;//customer code DON'T CHANGE THIS
  arrayOfData[4] = sheet.getRange('I9');   //joblotcode         
  arrayOfData[5] = sheet.getRange('J27');//total
  arrayOfData[6] = sheet.getRange('L32');//invoice paid
  arrayOfData[7] = sheet.getRange('B30');//notes
  arrayOfData[8] = sheet.getRange('B13');//area13;
  arrayOfData[9] = sheet.getRange('D13');//description13;
  arrayOfData[10] = sheet.getRange('I13');//quantity13;
  arrayOfData[11] = sheet.getRange('J13');//units13;
  arrayOfData[12] = sheet.getRange('K13');//pricePerUnit13;
  arrayOfData[13] = sheet.getRange('L13');//subtotal13;
  arrayOfData[14] = sheet.getRange('B14');//area14;
  arrayOfData[15] = sheet.getRange('D14');//description14;
  arrayOfData[16] = sheet.getRange('I14');//quantity14;
  arrayOfData[17] = sheet.getRange('J14');//units14;
  arrayOfData[18] = sheet.getRange('K14');//pricePerUnit14;
  arrayOfData[19] = sheet.getRange('L14');//subtotal14;
  arrayOfData[20] = sheet.getRange('B15');//area15;
  arrayOfData[21] = sheet.getRange('D15');//description15;
  arrayOfData[22] = sheet.getRange('I15');//quantity15;
  arrayOfData[23] = sheet.getRange('J15');//units15 ;
  arrayOfData[24] = sheet.getRange('K15');//pricePerUnit15 ;
  arrayOfData[25] = sheet.getRange('L15');//subtotal15 ;
  arrayOfData[26] = sheet.getRange('B16');//area16 ;
  arrayOfData[27] = sheet.getRange('D16');//description16 ;
  arrayOfData[28] = sheet.getRange('I16');//quantity16 ;
  arrayOfData[29] = sheet.getRange('J16');//units16 ;
  arrayOfData[30] = sheet.getRange('K16');//pricePerUnit16 ;
  arrayOfData[31] = sheet.getRange('L16');//subtotal16 ;
  arrayOfData[32] = sheet.getRange('B17');//area17 ;
  arrayOfData[33] = sheet.getRange('D17');//description17 ;
  arrayOfData[34] = sheet.getRange('I17');//quantity17 ;
  arrayOfData[35] = sheet.getRange('J17');//units17 ;
  arrayOfData[36] = sheet.getRange('K17');//pricePerUnit17 ;
  arrayOfData[37] = sheet.getRange('L17');//subtotal17 ;
  arrayOfData[38] = sheet.getRange('B18');//area18 ;
  arrayOfData[39] = sheet.getRange('D18');//description18 ;
  arrayOfData[40] = sheet.getRange('I18');//quantity18 ;
  arrayOfData[41] = sheet.getRange('J18');//units18 ;
  arrayOfData[42] = sheet.getRange('K18');//pricePerUnit18 ;
  arrayOfData[43] = sheet.getRange('L18');//subtotal18 ;
  arrayOfData[44] = sheet.getRange('B19');//area19 ;
  arrayOfData[45] = sheet.getRange('D19');//description19 ;
  arrayOfData[46] = sheet.getRange('I19');//quantity19 ;
  arrayOfData[47] = sheet.getRange('J19');//units19 ;
  arrayOfData[48] = sheet.getRange('K19');//pricePerUnit19 ;
  arrayOfData[49] = sheet.getRange('L19');//subtotal19 ;
  arrayOfData[50] = sheet.getRange('B20');//area20 ;
  arrayOfData[51] = sheet.getRange('D20');//description20 ;
  arrayOfData[52] = sheet.getRange('I20');//quantity20 ;
  arrayOfData[53] = sheet.getRange('J20');//units20 ;
  arrayOfData[54] = sheet.getRange('K20');//pricePerUnit20 ;
  arrayOfData[55] = sheet.getRange('L20');//subtotal20 ;
  arrayOfData[56] = sheet.getRange('B21');//area21 ;
  arrayOfData[57] = sheet.getRange('D21');//description21 ;
  arrayOfData[58] = sheet.getRange('I21');//quantity21 ;
  arrayOfData[59] = sheet.getRange('J21');//units21 ;
  arrayOfData[60] = sheet.getRange('K21');//pricePerUnit21 ;
  arrayOfData[61] = sheet.getRange('L21');//subtotal21 ;
  arrayOfData[62] = sheet.getRange('B22');//area22 ;
  arrayOfData[63] = sheet.getRange('D22');//description22 ;
  arrayOfData[64] = sheet.getRange('I22');//quantity22 ;
  arrayOfData[65] = sheet.getRange('J22');//units22 ;
  arrayOfData[66] = sheet.getRange('K22');//pricePerUnit22 ;
  arrayOfData[67] = sheet.getRange('L22');//subtotal22 ;
  arrayOfData[68] = sheet.getRange('B23');//area23 ;
  arrayOfData[69] = sheet.getRange('D23');//description23 ;
  arrayOfData[70] = sheet.getRange('I23');//quantity23 ;
  arrayOfData[71] = sheet.getRange('J23');//units23 ;
  arrayOfData[72] = sheet.getRange('K23');//pricePerUnit23 ;
  arrayOfData[73] = sheet.getRange('L23');//subtotal23 ;
  arrayOfData[74] = sheet.getRange('B24');//area24 ;
  arrayOfData[75] = sheet.getRange('D24');//description24 ;
  arrayOfData[76] = sheet.getRange('I24');//quantity24 ;
  arrayOfData[77] = sheet.getRange('J24');//units24 ;
  arrayOfData[78] = sheet.getRange('K24');//pricePerUnit24 ;
  arrayOfData[79] = sheet.getRange('L24');//subtotal24 ;
  //end build array

  
  
  
  //start find correct row
  
  var searchFor = sheet.getRange("C10").getValue();
  var invoiceRecord = ss.getSheetByName("InvoiceRecord");
  var lastRow = invoiceRecord.getLastRow();
  //verify last row
  Logger.log("lastRow: " + lastRow);
  //create an array of values to search
  var searchArea = invoiceRecord.getRange(4, 1, lastRow, 4).getValues();
  //start search the array
  for (jj=0; jj<searchArea.length; ++jj)  {
    if (searchArea[jj][1]==searchFor)  {break};
  }
  var copyToRow = searchArea[jj];
   
  //end find the correct row
  
  
  
  //ERROR!
  invoiceRecord.getRange(copyToRow, 1, 1, arrayOfData.length).setValues(arrayOfData);
  //ERROR!
  
  ui.alert('Invoice Changes Saved', ui.ButtonSet.OK);
  
  
}

非常感谢你的帮助。

更新

我对这个问题感到非常沮丧,所以我决定采取不同的策略来缩小原因。我完全删除了数组并将每个值分配给变量,以查看数组是否存在问题。显然,事实并非如此。我运行此代码时的结果现在说错误:“无法将NaN转换为(类)。(第140行,文件”OverwriteExistingInvoice“)”

function overwriteInvoice() {
  
  var ui = SpreadsheetApp.getUi();
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName("Invoice");
  
  
  
  //start change customer name into customer code
  var customerName = sheet.getRange('I2').getValue();
  var ccsheet = ss.getSheetByName("CustomerCodes");
  var lastRow = ccsheet.getLastRow();
  //check how many rows it found
  Logger.log("lastRow: " + lastRow);
  var lookUp = ccsheet.getRange(2, 1, lastRow-2, 3).getValues();
  
  var nn=0
  for (nn=0; nn<lookUp.length; ++nn) {
    if (lookUp[nn][0] == customerName) {break}
  }
  var customerCode = lookUp[nn][1];
  //check customer code to make sure it is returning correct info.
  Logger.log("customerCode: " + customerCode);
  //end change customer name into customer code
  
  
  //start build array

  
  var column0 = sheet.getRange('G2').getValue();//invoiceorquote
  var column1 = sheet.getRange('C10').getValue();//invoicequote number
  var column2 = sheet.getRange('C9').getValue();//date
  var column3 = customerCode;//customer code DON'T CHANGE THIS
  var column4 = sheet.getRange('I9').getValue();   //joblotcode         
  var column5 = sheet.getRange('J27').getValue();//total
  var column6 = sheet.getRange('L32').getValue();//invoice paid
  var column7 = sheet.getRange('B30').getValue();//notes
  var column8 = sheet.getRange('B13').getValue();//area13;
  var column9 = sheet.getRange('D13').getValue();//description13;
  var column10 = sheet.getRange('I13').getValue();//quantity13;
  var column11 = sheet.getRange('J13').getValue();//units13;
  var column12 = sheet.getRange('K13').getValue();//pricePerUnit13;
  var column13 = sheet.getRange('L13').getValue();//subtotal13;
  var column14 = sheet.getRange('B14').getValue();//area14;
  var column15 = sheet.getRange('D14').getValue();//description14;
  var column16 = sheet.getRange('I14').getValue();//quantity14;
  var column17 = sheet.getRange('J14').getValue();//units14;
  var column18 = sheet.getRange('K14').getValue();//pricePerUnit14;
  var column19 = sheet.getRange('L14').getValue();//subtotal14;
  var column20 = sheet.getRange('B15').getValue();//area15;
  var column21 = sheet.getRange('D15').getValue();//description15;
  var column22 = sheet.getRange('I15').getValue();//quantity15;
  var column23 = sheet.getRange('J15').getValue();//units15 ;
  var column24 = sheet.getRange('K15').getValue();//pricePerUnit15 ;
  var column25 = sheet.getRange('L15').getValue();//subtotal15 ;
  var column26 = sheet.getRange('B16').getValue();//area16 ;
  var column27 = sheet.getRange('D16').getValue();//description16 ;
  var column28 = sheet.getRange('I16').getValue();//quantity16 ;
  var column29 = sheet.getRange('J16').getValue();//units16 ;
  var column30 = sheet.getRange('K16').getValue();//pricePerUnit16 ;
  var column31 = sheet.getRange('L16').getValue();//subtotal16 ;
  var column32 = sheet.getRange('B17').getValue();//area17 ;
  var column33 = sheet.getRange('D17').getValue();//description17 ;
  var column34 = sheet.getRange('I17').getValue();//quantity17 ;
  var column35 = sheet.getRange('J17').getValue();//units17 ;
  var column36 = sheet.getRange('K17').getValue();//pricePerUnit17 ;
  var column37 = sheet.getRange('L17').getValue();//subtotal17 ;
  var column38 = sheet.getRange('B18').getValue();//area18 ;
  var column39 = sheet.getRange('D18').getValue();//description18 ;
  var column40 = sheet.getRange('I18').getValue();//quantity18 ;
  var column41 = sheet.getRange('J18').getValue();//units18 ;
  var column42 = sheet.getRange('K18').getValue();//pricePerUnit18 ;
  var column43 = sheet.getRange('L18').getValue();//subtotal18 ;
  var column44 = sheet.getRange('B19').getValue();//area19 ;
  var column45 = sheet.getRange('D19').getValue();//description19 ;
  var column46 = sheet.getRange('I19').getValue();//quantity19 ;
  var column47 = sheet.getRange('J19').getValue();//units19 ;
  var column48 = sheet.getRange('K19').getValue();//pricePerUnit19 ;
  var column49 = sheet.getRange('L19').getValue();//subtotal19 ;
  var column50 = sheet.getRange('B20').getValue();//area20 ;
  var column51 = sheet.getRange('D20').getValue();//description20 ;
  var column52 = sheet.getRange('I20').getValue();//quantity20 ;
  var column53 = sheet.getRange('J20').getValue();//units20 ;
  var column54 = sheet.getRange('K20').getValue();//pricePerUnit20 ;
  var column55 = sheet.getRange('L20').getValue();//subtotal20 ;
  var column56 = sheet.getRange('B21').getValue();//area21 ;
  var column57 = sheet.getRange('D21').getValue();//description21 ;
  var column58 = sheet.getRange('I21').getValue();//quantity21 ;
  var column59 = sheet.getRange('J21').getValue();//units21 ;
  var column60 = sheet.getRange('K21').getValue();//pricePerUnit21 ;
  var column61 = sheet.getRange('L21').getValue();//subtotal21 ;
  var column62 = sheet.getRange('B22').getValue();//area22 ;
  var column63 = sheet.getRange('D22').getValue();//description22 ;
  var column64 = sheet.getRange('I22').getValue();//quantity22 ;
  var column65 = sheet.getRange('J22').getValue();//units22 ;
  var column66 = sheet.getRange('K22').getValue();//pricePerUnit22 ;
  var column67 = sheet.getRange('L22').getValue();//subtotal22 ;
  var column68 = sheet.getRange('B23').getValue();//area23 ;
  var column69 = sheet.getRange('D23').getValue();//description23 ;
  var column70 = sheet.getRange('I23').getValue();//quantity23 ;
  var column71 = sheet.getRange('J23').getValue();//units23 ;
  var column72 = sheet.getRange('K23').getValue();//pricePerUnit23 ;
  var column73 = sheet.getRange('L23').getValue();//subtotal23 ;
  var column74 = sheet.getRange('B24').getValue();//area24 ;
  var column75 = sheet.getRange('D24').getValue();//description24 ;
  var column76 = sheet.getRange('I24').getValue();//quantity24 ;
  var column77 = sheet.getRange('J24').getValue();//units24 ;
  var column78 = sheet.getRange('K24').getValue();//pricePerUnit24 ;
  var column79 = sheet.getRange('L24').getValue();//subtotal24 ;
  //end build array

  
  
  
  //start find correct row
  
  var searchFor = sheet.getRange("C10").getValue();
  var invoiceRecord = ss.getSheetByName("InvoiceRecord");
  var lastRow = invoiceRecord.getLastRow();
  //verify last row
  Logger.log("lastRow: " + lastRow);
  //create an array of values to search
  var searchArea = invoiceRecord.getRange(4, 1, lastRow, 4).getValues();
  //start search the array
  var jj=0
  for (jj=0; jj<searchArea.length; ++jj)  {
    if (searchArea[jj][1]==searchFor)  {break};
  }
  
  Logger.log('jj value: ' + jj);
  
  var copyToRow = searchArea[jj];
  
  Logger.log('copyToRow: ' + copyToRow);
  //end find correct row
  
    
  //start copy over same entry
 //error on next line 
   invoiceRecord.getRange(copyToRow-1, 1).setValue(column0);
 //error on above line 
  ui.alert('Invoice Changes Saved', ui.ButtonSet.OK);
  
  
}

到目前为止,我非常感谢所有的帮助。我快要把头发撕掉了!

更新

这是最终正常运行的代码。

function overwriteInvoice() {
  
  var ui = SpreadsheetApp.getUi();
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName("Invoice");
  
  
  
  //start change customer name into customer code
  var customerName = sheet.getRange('I2').getValue();
  var ccsheet = ss.getSheetByName("CustomerCodes");
  var lastRow = ccsheet.getLastRow();
  //check how many rows it found
  Logger.log("lastRow: " + lastRow);
  var lookUp = ccsheet.getRange(2, 1, lastRow-2, 3).getValues();
  
  var nn=0
  for (nn=0; nn<lookUp.length; ++nn) {
    if (lookUp[nn][0] == customerName) {break}
  }
  var customerCode = lookUp[nn][1];
  //check customer code to make sure it is returning correct info.
  Logger.log("customerCode: " + customerCode);
  //end change customer name into customer code
  
  
  //start build array
  var arrayOfData = [];

  
  arrayOfData[0] = sheet.getRange('G2').getValue();//invoiceorquote
  arrayOfData[1] = sheet.getRange('C10').getValue();//invoicequote number
  arrayOfData[2] = sheet.getRange('C9').getValue();//date
  arrayOfData[3] = customerCode;//customer code DON'T CHANGE THIS
  arrayOfData[4] = sheet.getRange('I9').getValue();   //joblotcode         
  arrayOfData[5] = sheet.getRange('J27').getValue();//total
  arrayOfData[6] = sheet.getRange('L32').getValue();//invoice paid
  arrayOfData[7] = sheet.getRange('B30').getValue();//notes
  arrayOfData[8] = sheet.getRange('B13').getValue();//area13;
  arrayOfData[9] = sheet.getRange('D13').getValue();//description13;
  arrayOfData[10] = sheet.getRange('I13').getValue();//quantity13;
  arrayOfData[11] = sheet.getRange('J13').getValue();//units13;
  arrayOfData[12] = sheet.getRange('K13').getValue();//pricePerUnit13;
  arrayOfData[13] = sheet.getRange('L13').getValue();//subtotal13;
  arrayOfData[14] = sheet.getRange('B14').getValue();//area14;
  arrayOfData[15] = sheet.getRange('D14').getValue();//description14;
  arrayOfData[16] = sheet.getRange('I14').getValue();//quantity14;
  arrayOfData[17] = sheet.getRange('J14').getValue();//units14;
  arrayOfData[18] = sheet.getRange('K14').getValue();//pricePerUnit14;
  arrayOfData[19] = sheet.getRange('L14').getValue();//subtotal14;
  arrayOfData[20] = sheet.getRange('B15').getValue();//area15;
  arrayOfData[21] = sheet.getRange('D15').getValue();//description15;
  arrayOfData[22] = sheet.getRange('I15').getValue();//quantity15;
  arrayOfData[23] = sheet.getRange('J15').getValue();//units15 ;
  arrayOfData[24] = sheet.getRange('K15').getValue();//pricePerUnit15 ;
  arrayOfData[25] = sheet.getRange('L15').getValue();//subtotal15 ;
  arrayOfData[26] = sheet.getRange('B16').getValue();//area16 ;
  arrayOfData[27] = sheet.getRange('D16').getValue();//description16 ;
  arrayOfData[28] = sheet.getRange('I16').getValue();//quantity16 ;
  arrayOfData[29] = sheet.getRange('J16').getValue();//units16 ;
  arrayOfData[30] = sheet.getRange('K16').getValue();//pricePerUnit16 ;
  arrayOfData[31] = sheet.getRange('L16').getValue();//subtotal16 ;
  arrayOfData[32] = sheet.getRange('B17').getValue();//area17 ;
  arrayOfData[33] = sheet.getRange('D17').getValue();//description17 ;
  arrayOfData[34] = sheet.getRange('I17').getValue();//quantity17 ;
  arrayOfData[35] = sheet.getRange('J17').getValue();//units17 ;
  arrayOfData[36] = sheet.getRange('K17').getValue();//pricePerUnit17 ;
  arrayOfData[37] = sheet.getRange('L17').getValue();//subtotal17 ;
  arrayOfData[38] = sheet.getRange('B18').getValue();//area18 ;
  arrayOfData[39] = sheet.getRange('D18').getValue();//description18 ;
  arrayOfData[40] = sheet.getRange('I18').getValue();//quantity18 ;
  arrayOfData[41] = sheet.getRange('J18').getValue();//units18 ;
  arrayOfData[42] = sheet.getRange('K18').getValue();//pricePerUnit18 ;
  arrayOfData[43] = sheet.getRange('L18').getValue();//subtotal18 ;
  arrayOfData[44] = sheet.getRange('B19').getValue();//area19 ;
  arrayOfData[45] = sheet.getRange('D19').getValue();//description19 ;
  arrayOfData[46] = sheet.getRange('I19').getValue();//quantity19 ;
  arrayOfData[47] = sheet.getRange('J19').getValue();//units19 ;
  arrayOfData[48] = sheet.getRange('K19').getValue();//pricePerUnit19 ;
  arrayOfData[49] = sheet.getRange('L19').getValue();//subtotal19 ;
  arrayOfData[50] = sheet.getRange('B20').getValue();//area20 ;
  arrayOfData[51] = sheet.getRange('D20').getValue();//description20 ;
  arrayOfData[52] = sheet.getRange('I20').getValue();//quantity20 ;
  arrayOfData[53] = sheet.getRange('J20').getValue();//units20 ;
  arrayOfData[54] = sheet.getRange('K20').getValue();//pricePerUnit20 ;
  arrayOfData[55] = sheet.getRange('L20').getValue();//subtotal20 ;
  arrayOfData[56] = sheet.getRange('B21').getValue();//area21 ;
  arrayOfData[57] = sheet.getRange('D21').getValue();//description21 ;
  arrayOfData[58] = sheet.getRange('I21').getValue();//quantity21 ;
  arrayOfData[59] = sheet.getRange('J21').getValue();//units21 ;
  arrayOfData[60] = sheet.getRange('K21').getValue();//pricePerUnit21 ;
  arrayOfData[61] = sheet.getRange('L21').getValue();//subtotal21 ;
  arrayOfData[62] = sheet.getRange('B22').getValue();//area22 ;
  arrayOfData[63] = sheet.getRange('D22').getValue();//description22 ;
  arrayOfData[64] = sheet.getRange('I22').getValue();//quantity22 ;
  arrayOfData[65] = sheet.getRange('J22').getValue();//units22 ;
  arrayOfData[66] = sheet.getRange('K22').getValue();//pricePerUnit22 ;
  arrayOfData[67] = sheet.getRange('L22').getValue();//subtotal22 ;
  arrayOfData[68] = sheet.getRange('B23').getValue();//area23 ;
  arrayOfData[69] = sheet.getRange('D23').getValue();//description23 ;
  arrayOfData[70] = sheet.getRange('I23').getValue();//quantity23 ;
  arrayOfData[71] = sheet.getRange('J23').getValue();//units23 ;
  arrayOfData[72] = sheet.getRange('K23').getValue();//pricePerUnit23 ;
  arrayOfData[73] = sheet.getRange('L23').getValue();//subtotal23 ;
  arrayOfData[74] = sheet.getRange('B24').getValue();//area24 ;
  arrayOfData[75] = sheet.getRange('D24').getValue();//description24 ;
  arrayOfData[76] = sheet.getRange('I24').getValue();//quantity24 ;
  arrayOfData[77] = sheet.getRange('J24').getValue();//units24 ;
  arrayOfData[78] = sheet.getRange('K24').getValue();//pricePerUnit24 ;
  arrayOfData[79] = sheet.getRange('L24').getValue();//subtotal24 ;
  //end build array

  
  
  
  //start find correct row
  
  var searchFor = sheet.getRange("C10").getValue();
  var invoiceRecord = ss.getSheetByName("InvoiceRecord");
  var lastRow = invoiceRecord.getLastRow();
  //verify last row
  Logger.log("lastRow: " + lastRow);
  //create an array of values to search
  var searchArea = invoiceRecord.getRange(4, 1, lastRow, 4).getValues();
  //start search the array
  var jj=0
  for (jj=0; jj<searchArea.length; ++jj)  {
    if (searchArea[jj][1]==searchFor)  {break};
  }
  
  Logger.log('jj value: ' + jj);
  
  var copyToRow = jj+4;
  
  Logger.log('copyToRow: ' + copyToRow);
  //end find correct row
    
  //start copy over the same entry
  
  var outerArray = [];
  outerArray.push(arrayOfData);
  
  invoiceRecord.getRange(copyToRow, 1, 1, 80).setValues(outerArray);
 
      
  
  ui.alert('Invoice Changes Saved', ui.ButtonSet.OK);
  
  
}

1 个答案:

答案 0 :(得分:2)

getValue()方法添加到以下所有行:

arrayOfData[x] = sheet.getRange('XX');//What to get

现在,范围对象正在放入数组中,而不是值。

应该是:

arrayOfData[x] = sheet.getRange('XX').getValue();//Note

创建一个外部数组,并将arrayOfData放入其中:

var outerArray = [];
outerArray.push(arrayOfData);

//getRange(Start row, start column, number of rows, number of columns)
invoiceRecord.getRange(copyToRow, 1, outerArray.length, outerArray[0].length)
  .setValues(outerArray);

setValues()方法必须具有二维数组。如果这只是一行数据,那么只有一个内部数组。