如果您从电子表格中的两张纸开始,其中一张是隐藏的,然后尝试删除隐藏的纸张,只留下可见的纸张,则无法删除隐藏的纸张。
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,访问该网站并将其标记为更新。
答案 0 :(得分: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()