0
还在学习如何使用数组。我收到错误“无法转换数组为Object [] []。(46行,文件‘提交记’)无法将阵列转换为Odject [] []即使它是二维阵列
46号线是
targetSheet.getRange(lastRow+1, 1, 1, arrayOfData.length).setValues(arrayOfData);
我曾经有过这样的错误,但它是因为数组的问题一个数组里面的,现在我不知道什么是错的事。
整个代码
function submitButtonClick() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
Logger.log('sheet.getName(): ' + sheet.getName());
if (sheet.getName() !== "SubmitReceipt") {return;};
var targetSheet = ss.getSheetByName("ReceiptRecord");
var arrayOfData = [];
var week = sheet.getRange(6,9).getValue();
var emplN = sheet.getRange(4,9).getValue();
var purDate = sheet.getRange(9,9).getValue();
var purFrom = sheet.getRange(11,9).getValue();
var custC = sheet.getRange(14,9).getValue();
var deptC = sheet.getRange(16,9).getValue();
var lotC = sheet.getRange(18,9).getValue();
var laborC = sheet.getRange(20,9).getValue();
var itemC = sheet.getRange(22,9).getValue();
var hyperL = sheet.getRange(28,9).getValue();
var notes = sheet.getRange(44,8).getValue();
arrayOfData[0] = week;
arrayOfData[1] = emplN;
arrayOfData[2] = purDate;
arrayOfData[3] = purFrom;
arrayOfData[4] = custC;
arrayOfData[5] = deptC;
arrayOfData[6] = lotC;
arrayOfData[7] = laborC;
arrayOfData[8] = itemC;
arrayOfData[9] = hyperL;
arrayOfData[10] = notes;
Logger.log('arrayOfData '+ arrayOfData)
var lastRow = targetSheet.getLastRow();
Logger.log('lastRow: ' + lastRow);
Logger.log('arraylength ' + arrayOfData.length);
targetSheet.getRange(lastRow+1, 1, 1, arrayOfData.length).setValues(arrayOfData);
sheet.getRange(6,9).clearContent();
sheet.getRange(4,9).clearContent();
sheet.getRange(9,9).clearContent();
sheet.getRange(11,9).clearContent();
sheet.getRange(14,9).clearContent();
sheet.getRange(16,9).clearContent();
sheet.getRange(18,9).clearContent();
sheet.getRange(20,9).clearContent();
sheet.getRange(22,9).clearContent();
sheet.getRange(28,9).clearContent();
sheet.getRange(44,8).clearContent();
}
我知道这个代码是笨重的,并且可以更高效地编写和凝结,但我是因为我是JS的新手,故意用这种方式写这种方式,这对于我直接了解代码中正在发生的事情来说很简单。我希望我的理智努力不是我的问题的原因。请帮忙。 :)
你可以显示logger.log结果吗?我想你应该简单地写'setValues([arrayOfData])'但我只是猜测;-) –
你是对的!这就是它所需要的。非常感谢一群有眼光的人。 – JLBJones
不客气:)。你的数组是一个简单的数组,'setValues()'需要一个数组数组,即使是一行数据。 –