2013-06-01 4 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

Сообщение об ошибке вводит в заблуждение. Для этого вам необходимо открыть проблему в Tracker Issue Tracker (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() 
Смежные вопросы