如何在Google Sheets中使用多个选项卡中的值创建电子表格下拉菜单 [英] how to create spreadsheet dropdown with values from multiple tabs in Google Sheets

查看:0
本文介绍了如何在Google Sheets中使用多个选项卡中的值创建电子表格下拉菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

想象一个电子表格Google电子表格。

假设我有多个选项卡,每个选项卡都有一个名称。可能有60-80个选项卡。

我要在首页上创建一个下拉列表,我可以在其中查看工作簿中每个选项卡的。

它可能如下所示:



   ┌────────────────────────────────────────────────────┐
   │                                                    │
   │                                                    │
   │           Selected                                 │
   │           sheet     Value                          │
   │          ┌──────▼  ┌─────────────┐ ┌──────┐        │
   │          │sheet1│  │             │ │ Save │        │
   │          │sheet2│  └─────────────┘ └──────┘        │
   │          │sheet3│                                  │
   │          └──────┘                                  │
   │                                                    │
   │                                                    │
   │                                                    │
   ├───────────┬────────┬───────┬─────────┬───┬───┬──┬──┤
   │ Frontpage │ sheet1 │sheet2 │ sheet3  │ … │ … │… │… │
   └───────────┴────────┴───────┴─────────┴───┴───┴──┴──┘

显然,我可以构建一个Web应用程序并使用真正的数据库,但我想探索一下仅使用电子表格或类似工具可以实现的功能。

如何基于工作簿中的所有选项卡名创建下拉列表?目前是否可以这样做?

推荐答案

下拉列表

若要基于工作簿中的所有选项卡名创建下拉列表,请尝试

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var sh = ss.getSheetByName('FrontPage')
  var sheets = []
  ss.getSheets().forEach(function(sheet){if (sheet.getName()!='FrontPage') {sheets.push(sheet.getName())}})
  var validationRule = SpreadsheetApp.newDataValidation().requireValueInList(sheets).build()
  sh.getRange('B2').clearContent().clearDataValidations()
  sh.getRange('B2').setDataValidation(validationRule); 
}

将该值报告到选定的选项卡

如果要报告所选工作表范围A1中的值,请尝试

function onEdit(e){
  var sh = e.source.getActiveSheet();
  var cel = e.source.getActiveRange();
  if (sh.getName()=='FrontPage' && cel.getA1Notation()=='D2'){
    try{
      SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sh.getRange('B2').getValue()).getRange('A1').setValue(e.value)
    }
    catch(e){}
  }
}

这篇关于如何在Google Sheets中使用多个选项卡中的值创建电子表格下拉菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆