myVars 是一個保存變數名稱及其值的陣列。
這是我的代碼:
var tmpArr = [];
var tmpArrVals = "";
for (i = 0; i < 4; i ) {
tmpArrVals = tmpArrVals myVars[i][myCol] ", ";
}
tmpArrVals = tmpArrVals.substr(0,tmpArrVals.length-2); //Trim last comma
// Logger.log("tmpArrVals is " tmpArrVals);
tmpArr.push([tmpArrVals]);
Logger.log('Contents of tmpArr are on next line.');
Logger.log(tmpArr);
var tstArr = [["Trip_Number", "Miles", "Empty_Miles", "Temp"]];
Logger.log('Contents of tstArr are on next line');
Logger.log(tstArr);
wsDB.getRange(1,1,1,4).setValues(tmpArr);
// wsDB.getRange(1,1,1,4).setValues(tstArr);
這是 Logger 的輸出:
3:36:28 PM Notice Execution started
3:36:28 PM Info Contents of tmpArr are on next line.
3:36:28 PM Info [[Trip_Number, Miles, Empty_Miles, Temp]]
3:36:28 PM Info Contents of tstArr are on next line
3:36:28 PM Info [[Trip_Number, Miles, Empty_Miles, Temp]]
3:36:29 PM Error
Exception: The number of columns in the data does not match the number of columns in the range. The data has 1 but the range has 4.
讓我感到困惑的是,如果我更改最后兩行代碼,以便使用 tstArr 而不是 tmpArr,它會按預期作業并將值插入到作業表的前四列中,即使兩個陣列的內容似乎是完全相同的。
uj5u.com熱心網友回復:
我認為在您的腳本中,tmpArr陣列類似于[["text value"]]. 這樣,當您運行 的腳本時wsDB.getRange(1,1,1,4).setValues(tmpArr),就會發生這樣的錯誤。我認為這可能是您的問題的原因。為了消除這個問題,下面的修改怎么樣?
從:
tmpArr.push([tmpArrVals]);
到:
tmpArr.push(tmpArrVals.split(", "));
或者
從:
for (i = 0; i < 4; i ) {
tmpArrVals = tmpArrVals myVars[i][myCol] ", ";
}
tmpArrVals = tmpArrVals.substr(0,tmpArrVals.length-2); //Trim last comma
// Logger.log("tmpArrVals is " tmpArrVals);
tmpArr.push([tmpArrVals]);
到:
for (i = 0; i < 4; i ) {
tmpArr.push(tmpArrVals myVars[i][myCol]);
}
tmpArr = [tmpArr];
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/368754.html
