![](/img/trans.png)
[英]Google Apps Script Error: “Cannot read property 'length' of undefined”
[英]Cannot read property “0” from undefined. Error Google Apps Script
我正在獲取無法從未定義中讀取屬性“ 0”。 第16行發生錯誤。(而(colunaDias [emptyCell] [0] <= dias))
對於Google SpreadSheets,這應該是一個非常簡單的功能。 我看不到我在做什么錯...
奇怪的是,如果我不使用變量“ dias”,而是使用整數。 while函數起作用。
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var leadsSheet = ss.getSheetByName("Leads Todas as Categorias, menos outros - Days (5days)");
var targetSheet = ss.getSheetByName("feticaria");
var cellLeads = leadsSheet.getRange(1,1).getValue();
//var cellTarget = targetSheet.getRange(1,1).setValue(valor);
var colunaDias = leadsSheet.getRange('B:B').getValues();
var sourceMedium = leadsSheet.getRange('A:A').getValues();
var emptyCell = 16;
var dias = 1;
while (colunaDias[emptyCell][0] != ""){
while (colunaDias[emptyCell][0] <= dias){
dias++;
emptyCell++;
}
emptyCell++;
}
Logger.log(emptyCell);
}
我猜colunaDias[emptyCell]
是未定義的。 它通過了第一個while
條件,因為“ undefined”不等於“”。 如果未定義colunaDias[emptyCell]
,則此行有問題:
var colunaDias = leadsSheet.getRange('B:B').getValues();
要么
colunaDias[emptyCell][0]
問題是“ emptyCell”是16。 getValues()
返回矩形值網格的對象。 我將通過檢查[0] [0]來測試矩形網格中是否有任何東西。
Logger.log('is there any data? ' + colunaDias[0][0])
如果沒有數據,則某些操作失敗:
var colunaDias = leadsSheet.getRange('B:B').getValues();
如果那條線工作正常,那么更高的位置是錯誤的。
您應該檢查getSheetByName
的返回類型getSheetByName
為null。
// The code below will log the index of a sheet named "YourSheetName"
var leadsSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("YourSheetName");
if (leadsSheet != null) {
Logger.log(leadsSheet.getIndex());
}
我認為,可能導致該錯誤的唯一原因是emptyCell
大於colunaDias
數組,即,如果工作表小於16行(如果此處顯示的值正確)。
在第一while
之前添加此行:
Logger.log('emptyCell = '+emptyCell+' and colunaDias.length = '+colunaDias.length);
我測試了腳本的副本,該腳本的運行沒有錯誤,除非我在1000行工作表上定義emptyCell
> 1000。
我知道幾年前的這篇文章,但這是我遇到的最接近的問題。 我只想發布我的答案,以防其他人有一天在這里結束。
由於某種原因,檢查變量“ dias”作為字符串傳遞。 這就是為什么用數字替換它可以使腳本運行。
dias = parseInt(dias); //use this before the variable needs to be read
我不能說為什么它在被++之后傳遞字符串,但這會解決它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.