2010-11-18 22 views
2

このスクリプトを試してみるとこのエラーが発生します。数日間は正常に動作しています。 Googleドキュメントスプレッドシートにあります。TypeError:nullのメソッド "getRange"を呼び出すことはできません。 (行0)

TypeError:nullのメソッド "getRange"を呼び出すことはできません。 (行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