2010-11-18 49 views
2

當我嘗試運行這個腳本時,我總是收到這個錯誤。它已經運行好幾天了。它位於Google文件電子表格中。TypeError:無法調用null的方法「getRange」。 (line 0)

TypeError:無法調用null的方法「getRange」。 (line 0)

ss = SpreadsheetApp.getActiveSpreadsheet(); 


function onOpen() { 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var menuEntries = [ {name: "New PO", functionName: "NewPO"}]; 
    ss.addMenu("New PO", menuEntries); 
} 


function NewPO() { 
    SpreadsheetApp.getActiveSheet().insertRowsBefore(1,6); 


    // Adjust this range accordingly, these are the cells that will be 
    // copied. Format is getRange(startRow, startCol, numRows, numCols) 
    ss.getSheetByName("PO Form").getRange(1, 1, 6, 8) 
    .copyTo(SpreadsheetApp.getActiveSheet().getRange(1, 1, 6, 8)); 
    } 


function onEdit(e) { 
    var ss = e.source.getActiveSheet(); 
    var r = e.source.getActiveRange(); 
    // 1 is A, 2 is B, ... 8 is H 
    if (r.getColumn() == 8 && r.getValue() == "x") { 
    r.setValue(Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd")); 
    } 
} 

是否有任何可以看到會導致此錯誤的內容?

回答

3

您是否檢查過ss.getSheetByName("PO Form")的返回值。這很可能是null。您還有一個名爲ss的類級變量和名爲ss的方法變量。如果你不太小心,這種陰影會導致問題。

+0

謝謝。我改變了表格的名稱,甚至沒有考慮到這一點。我對JavaScript非常陌生。您有什麼機會可以看看我發佈的其他問題,看看您是否有任何建議? – David 2010-11-18 04:12:57

相關問題