2013-06-01 81 views
0

如果您從電子表格中的兩個工作表開始,其中一個隱藏,然後嘗試刪除隱藏工作表而只留下可見工作表,則無法刪除隱藏工作表。嘗試刪除隱藏工作表時出錯

function test_delete_hidden_sheet() { 
    var ss = SpreadsheetApp.create("delete_hidden_sheet"); 
    var numSheets = ss.getNumSheets(); // 1 
    var newSheet = ss.insertSheet().hideSheet(); // Sheet2.hideSheet 
    var nameActiveSheet = ss.getActiveSheet().getName(); // Sheet2 
    // ActiveSheet = Sheet2 (hidden) 
    ss.deleteActiveSheet(); // ERROR: You can't remove the last sheet in a document. 
} 

注:這已被報告爲Issue 2846,參觀和星其更新。

在此期間,作爲一種解決方法,你可以嘗試像下面
+2

錯誤消息有誤導性。您應該在問題跟蹤器(http://code.google.com/p/google-apps-script-issues/issues/list)問題跟蹤器中爲此打開問題。 – Srik

回答

0

function test_delete_hidden_sheet() { 
    var ss = SpreadsheetApp.create("delete_hidden_sheet"); 
    var numSheets = ss.getNumSheets(); // 1 
    var newSheet = ss.insertSheet(); // Sheet2.hideSheet 
    newSheet.hideSheet(); 
    var nameActiveSheet = ss.getActiveSheet().getName(); // Sheet2 
    // ActiveSheet = Sheet2 (hidden) 
    if(!newSheet.isSheetHidden()){ss.deleteActiveSheet()}else{newSheet.showSheet();ss.deleteActiveSheet()} 
} 

或者更簡單地說,因爲showSheet對非隱藏的工作表沒有影響只是刪除它之前系統地展示活動表:

ss.getActiveSheet().showSheet() ; ss.deleteActiveSheet()