找不到方法setActiveSheet(string)

时间:2015-02-01 02:17:34

标签: javascript google-apps-script google-sheets

在使用JavaScript运行的Google表格中,我收到此消息“无法找到方法setActiveSheet(string)。(第4行,文件”代码“)”,我不知道为什么......我我很喜欢编码,所以请耐心等待。

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

2 个答案:

答案 0 :(得分:3)

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

为了从字符串中获取Sheet对象,您需要打开父电子表格,然后按名称获取相应的工作表,然后将其传递给setActiveSheet。

假设此脚本嵌入在相关的电子表格中,如下所示:

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

答案 1 :(得分:0)

这对我来说很好。

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