2015-06-15 65 views
1

我創建了我自己的導入範圍腳本,因爲我有人在輸入數據的過程中輸入數據,然後破壞。此外,我有隱藏的表格,用戶複製有導入,他們將不得不擊中「請求訪問」按鈕才能工作。 Plus ImportRange還有一些很大的計算電子表格。ImportRange腳本悄悄地捕獲錯誤

這裏是我的代碼

//~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~` 
//Script Based ImportRange 

//Example importRange_('1Eb8a5Imw9FWz-Ifk2gUMNkg1TXDlLPemy1bmNv_AOcY','Sheet1','A:Z','Dest_Sheet','A1','y') 
//Explanation importRange_('Importing Spreadsheet Key','Importing Spreadsheet Tab Name','Importing Spreadsheet Tab's Range','Destination Spreadsheet Tab Name','Destination Spreadsheet Tab's placement','Will add note to the first cell of import') 

function importRange_(Source_Key,Source_Sheet,Source_Range,Set_Sheet,Set_Pos,Add_Note) 
{ 
    var Load = SpreadsheetApp.openById(Source_Key).getSheetByName(Source_Sheet).getRange(Source_Range).getValues(); 
    var Name = SpreadsheetApp.openById(Source_Key).getName(); 
    var RowVal = SpreadsheetApp.getActive().getSheetByName(Set_Sheet).getRange(Set_Pos).getRow(); 
    var ColVal = SpreadsheetApp.getActive().getSheetByName(Set_Sheet).getRange(Set_Pos).getColumn(); 
    if(Add_Note.toUpperCase() == 'Y') 
    { 
    SpreadsheetApp.getActive().getSheetByName(Set_Sheet).getRange(RowVal,ColVal,1,1).setNote("Import Script Updated On: " + Utilities.formatDate(new Date(), "PST", "MM-dd-yyyy hh:mm a")+"\nSS Name: "+Name+"\nRange: "+Source_Sheet+"!"+Source_Range+"\nSS Key: "+ Source_Key);  
    } 
    SpreadsheetApp.getActive().getSheetByName(Set_Sheet).getRange(RowVal,ColVal,Load.length,Load[0].length).setValues(Load); 
    SpreadsheetApp.flush(); 
    SpreadsheetApp.getActiveSpreadsheet().toast('At: '+Set_Sheet+'!'+Set_Pos,'Import Completed:'); 
} 
//~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~` 

所以,當我嘗試try & catch(err)各地:

var Load = SpreadsheetApp.openById(Source_Key) .getSheetByName(Source_Sheet) .getRange(Source_Range) .getValues();

我仍然可以顯示在電子表格側端用戶一個嚴重的錯誤。有沒有一種方法能夠安靜地捕捉到信息併發送給記錄儀?

回答

1

我有問題trycatch(err)。您應該嘗試使用catch(e)

您也可以嘗試做e.messagee.filename,或e.lineNumber來縮小問題的彈出