找不到方法 setActiveSheet(string)

Cannot find method setActiveSheet(string)

在 Google 表格中,在 JavaScript 上运行,我收到这条消息,"Cannot find method setActiveSheet(string). (line 4, file "代码")",我不知道为什么...我'我对编码还很陌生,所以请耐心等待。

function onOpen() {
  var email = Session.getActiveUser().getEmail();
  var sheet = email.slice(0,-11);
  SpreadsheetApp.setActiveSheet(sheet)
}

您收到 "Cannot find method" 错误,因为 setActiveSheet() 方法采用 Sheet 类型的参数,而不是字符串。请参阅此处的规范:https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#setActiveSheet(Sheet)

为了从字符串中得到一个Sheet对象,需要打开parent Spreadsheet,然后通过名字得到合适的sheet,然后就可以传递了设置ActiveSheet.

假设此脚本嵌入到相关的 Spreadsheet 中,看起来像这样:

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(spreadsheet.getSheetByName(sheet));

这对我来说效果很好。

function theSecondSheet() {
   var activeSpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
    if(activeSpreadSheet.getSheetByName("Sheet2").activate()){
     SpreadsheetApp.setActiveSheet(activeSpreadSheet.getSheetByName("Sheet2"));
    }
}