Google表格宏用于根据下拉选择切换到另一个工作表

时间:2017-09-08 16:51:23

标签: google-apps-script google-sheets

目前正在构建一个功能,当从下拉数据验证菜单中选择某个选项时,用户将被重定向到工作簿中的不同工作表。我目前拥有的不会返回错误但也不会执行预期的操作。任何帮助将不胜感激。

function gotoselectsheetnosheet() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var range = sheet.getRange(4,3);
  var data = range.getValue();  
  if (data == "Answers")
  {  
     var dinner = ss.getSheetByName('Answers');
     dinner.activate();
   }
}

please see this image for further clarification

2 个答案:

答案 0 :(得分:0)

如果您设置onEdit()触发器,则此方法有效。

function gotosheet(e)
{
  e.source.getSheetByName(e.value).activate();

}

e.source是电子表格对象的事件事件对象资源。查看here以了解有关它的更多信息。

接下来是getSheetByName(e.value),e.value是正在编辑的单元格中的新值。

然后下一个是激活。这使它转移到命名表。因此,您可能已在验证设置中选择了相应的工作表名称。

验证设置:

enter image description here

enter image description here 当您在验证下拉列表中选择两个可能的选项之一时会触发onEdit触发器,该功能会将您带到具有该名称的选项卡。

验证设置中使用的命名范围:

enter image description here

OnEdit触发器设置:

enter image description here

答案 1 :(得分:0)

尝试此解决方案。

function onEdit(e) {
  if(e.source.getActiveSheet().getName() === "Menu" && e.range.getRow() === 4 && e.range.getColumn() === 3) {
    e.source.getSheetByName(e.value).activate();
  }
}