想象一下电子表格 Google Spreadsheet。
鉴于我有多个选项卡,每个选项卡都有一个名称。可能有 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){}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)