2010-11-18 13 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

고맙습니다. 나는 시트의 이름을 바꾸었고 그것에 대해서 생각조차하지 않았다. 나는 아주 아주 새로운 자바 스크립트입니다. 혹시 내가 게시 한 다른 질문을보고 그것에 대한 조언이 있다면 볼 수 있습니까? – David