Google表格脚本hideSheet(),工作表未隐藏

时间:2018-01-25 15:21:35

标签: google-apps-script google-sheets

尝试复制隐藏的模板,使其显示,但在复制后再次隐藏它。

hideSheet()功能不起作用。有任何想法吗?

function googleQuiz(){

//Duplicate Sheet 
  var ss =SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.setActiveSheet(ss.getSheetByName('QuizFormTPlate'));
  ss.duplicateActiveSheet();
  sheet.hideSheet();
//Rename sheet
  var dSheet = ss.setActiveSheet(ss.getSheetByName('Copy of QuizFormTPlate'));
  var date = new Date();
  var tz = ss.getSpreadsheetTimeZone();
  var marksDate = Utilities.formatDate(date, tz, 'dd-MMM');
  var name = "G-Quiz ".concat(marksDate);
  dSheet.setName(name);
//Insert Cell 
  var cell = dSheet.getRange("C2");
  cell.setValue('Formative');
}

3 个答案:

答案 0 :(得分:0)

这是替代解决方案,将复制工作表并将其隐藏

function googleQuiz(){

//Duplicate Sheet 
  var ss =SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('QuizFormTPlate');
  var dSheet = sheet.copyTo(SpreadsheetApp.openById(ss.getId()))
  dSheet.showSheet()
//Rename sheet
  var date = new Date();
  var tz = ss.getSpreadsheetTimeZone();
  var marksDate = Utilities.formatDate(date, tz, 'dd-MMM');
  var name = "G-Quiz ".concat(marksDate);
  dSheet.setName(name);
//Insert Cell 
  var cell = dSheet.getRange("C2");
  cell.setValue('Formative');
}

基本上,不是您使用电子表格对象的duplicateActiveSheet()功能。您可以使用工作表对象的copyTo()功能,并为其提供当前的电子表格。 sheet.copyTo(SpreadsheetApp.openById(ss.getId()))。 并直接将新工作表对象传递给var dSheet以使其可见并重命名。

答案 1 :(得分:0)

问题似乎是由于在隐藏的工作表上使用setActiveSpreadSheet引起的,如果在ss.getSheetByName('QuizFormTPlate').show();之前调用ss.setActiveSpreadsheet(ss.getSheetByName('QuizFormTPlate'));,则对hideSheet()的调用将可以正常工作。将其发布到此处,以便其他任何遇到此问题的人都可以添加.show()而不是重新编写整个代码。

答案 2 :(得分:0)

实际上是“ showSheet()” 这对我有用:

var spreadsheet = SpreadsheetApp.getActive();
var sheetTemplate = spreadsheet.getSheetByName('Template');
sheetTemplate.showSheet();
//do something...
sheetTemplate.hideSheet();

由于hideSheet()如果工作表已经被隐藏,则不起作用:

https://developers.google.com/apps-script/reference/spreadsheet/sheet#hidesheet

首先显示隐藏的工作表应该可以解决问题:

https://developers.google.com/apps-script/reference/spreadsheet/sheet#showsheet