尝试删除隐藏的工作表时出错

时间:2013-06-01 12:13:07

标签: google-apps-script google-sheets

如果您从电子表格中的两张纸开始,其中一张是隐藏的,然后尝试删除隐藏的纸张,只留下可见的纸张,则无法删除隐藏的纸张。

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,访问该网站并将其标记为更新。

1 个答案:

答案 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()