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,请访问并加注星标以获取更新。

4

1 回答 1

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()
于 2013-07-28T09:13:06.327 回答