[英]Google Sheets script - “Cannot read property of undefined” (when it's not)
[英]Google Sheets Script - Cannot read property 1.0?
我試圖通過腳本輸入數據,以便它找到第一個空行,並在該行中找到第一個空列,然后將數據輸入該列。 對於每一行,將有幾列要插入信息,並且這是在單獨的請求中完成的,我意識到這是我必須解決的另一個問題,但我還沒有到達那里。
var answer = e.parameter["value"]
var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key"));
var sheet = doc.getSheetByName(e.parameter["sheet"]);
var row = sheet.getLastRow();
var column = sheet.getLastColumn()
var range = sheet.getRange(row, 1, 1, column);
var data = range.getValues();
for(var i = 1; i <= column; i++){
if (data[1][i] == "" || data[1][i] == " "){
sheet.getRange(1, i).setValue(answer);
break;
}
}
運行時出現此錯誤: “消息”:“無法從未定義中讀取屬性\\” 1.0 \\“。”,“名稱”:“ TypeError”,“文件名”:“代碼(數據庫宏)”,“ lineNumber “:107,”堆棧“:” \\ tt代碼(數據庫宏):107(doPost
編輯代碼:
for(var i = 1; i <= column; i++){
if (data[i] == ""){
sheet.getRange(row, i).setValue(answer);
break;
}
}
我正在分享您的工作表,您可以在其中看到如何在范圍A1:A10中找到第一個空行(單元格值)
https://docs.google.com/spreadsheets/d/12w3Xi2CsOQ7u0i6gB5T7SWhG5_Kkv_04UJOp2ouNpF0/edit?usp=sharing
function myFunction() {
var aa = SpreadsheetApp.getActiveSheet().getRange("A1:A10").getValues();
var ui = SpreadsheetApp.getUi();
var ix = null;
for( var i = 0 ; i < aa.length; i++){
if( aa[ i ] == "" ) { ix = i; break; }
}
ui.alert( "first empty row is: A" + (ix+1) );
}
hth,歡呼
您的問題出在這里:
Javascript數組索引從0開始而不是@ZigMandel提到的1,因此修改以下代碼:
for(var i = 1; i <= column; i++){
if (data[1][i] == "" || data[1][i] == " "){ // This i believe is your line 107
sheet.getRange(1, i).setValue(answer);
break;
}
}
對此:
for(var i = 0; i < column; i++){
if (data[0][i] == "" || data[0][i] == " "){
sheet.getRange(1, i).setValue(answer);
break;
}
}
由於該語句data [1] [i],最有可能導致您收到錯誤。 由於數組索引從0開始,因此您從此代碼中獲得了一行:
var range = sheet.getRange(row, 1, 1, column);
var data = range.getValues();
沒有索引1,因此data [1]未定義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.