Dynamic 在菜单UI内使用循环脚本初学者
我试图创建一个动态菜单,创建其中的工作表名称。我不经常编码,需要一些帮助。目前,Open上的代码创建一个菜单,在菜单中创建它的第一个项目,然后添加一个分隔符,然后进入一个循环。它检查有多少张纸,并从第一张开始。存储名称并使用该名称创建菜单项,然后前进到下一页。获取其名称并生成下一个菜单项。我可以让循环使用菜单UI语法。我不担心名称。接下来我将尝试解决这个问题,只是希望它首先创建菜单Dynamic 在菜单UI内使用循环脚本初学者,dynamic,drop-down-menu,google-sheets,Dynamic,Drop Down Menu,Google Sheets,我试图创建一个动态菜单,创建其中的工作表名称。我不经常编码,需要一些帮助。目前,Open上的代码创建一个菜单,在菜单中创建它的第一个项目,然后添加一个分隔符,然后进入一个循环。它检查有多少张纸,并从第一张开始。存储名称并使用该名称创建菜单项,然后前进到下一页。获取其名称并生成下一个菜单项。我可以让循环使用菜单UI语法。我不担心名称。接下来我将尝试解决这个问题,只是希望它首先创建菜单 function onOpen() { var spreadsheet = SpreadsheetApp.g
function onOpen() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var numsheets = spreadsheet.getNumSheets();
SpreadsheetApp.getUi
.createMenu('SWMS CREATER')
.addItem('Create New SWMS', 'showPrompt')
.addSeparator()
for ( var i = 0; i < numsheets.length;i++ ) {
var ui = SpreadsheetApp.getUi();
var subMenu = ui.createMenu('Test Menu');
subMenu.addItem('Test script'i ,'showPrompt');
}
}
函数onOpen(){
var电子表格=SpreadsheetApp.getActiveSpreadsheet();
var numsheets=电子表格.getNumSheets();
SpreadsheetApp.getUi
.createMenu('SWMS CREATER')
.addItem('创建新SWMS','显示提示')
.addSeparator()
对于(变量i=0;ifunction onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu('OPSWMS CREATER')
.addItem('Create New SWMS', 'showPrompt')
.addSeparator();
var sheetList = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var subMenu = ui.createMenu('OPTest Menu');
for (var i = 0; i < sheetList.length; i++) {
subMenu.addItem(sheetList[i].getName(), 'showPrompt');
}
menu.addSubMenu(subMenu).addToUi();
}
函数onOpen(){
var ui=SpreadsheetApp.getUi();
var menu=ui.createMenu('OPSWMS CREATER')
.addItem('创建新SWMS','显示提示')
.addSeparator();
var sheetList=SpreadsheetApp.getActiveSpreadsheet().getSheets();
var subMenu=ui.createMenu('OPTest Menu');
对于(变量i=0;iui
移出循环;然后尽可能重复使用。2) 变量
菜单
已建立并移出循环。这可用于在最后一行代码中添加子菜单。3) 在
.addSeparator()
之后添加了分号(尽管是可选的)4) 过去常常拿到所有的床单这是OP代码中缺少的第一个关键元素
5) 已删除
var numsheets
行。您不需要这个,因为您可以在图纸列表上获得相同的计数
6) 在循环中,有两件事需要注意
sheetList[i]
方括号中的i([i]
)返回“sheetList”中的相关项李>
- 返回工作表的名称。组合使用,
sheetList[i].getName()
为您提供工作表的名称,并允许您将其添加为菜单项选择
7) menu.addSubMenu(subMenu.addToUi()代码>这会将循环的内容添加到菜单中这是OP代码中缺少的第二个关键元素
信贷:
Akshin Jalilov对OP的回答是试图创建一个动态菜单,列出电子表格中的每个工作表。OP的代码非常接近工作状态——只有少量但重要的调整
function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu('OPSWMS CREATER')
.addItem('Create New SWMS', 'showPrompt')
.addSeparator();
var sheetList = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var subMenu = ui.createMenu('OPTest Menu');
for (var i = 0; i < sheetList.length; i++) {
subMenu.addItem(sheetList[i].getName(), 'showPrompt');
}
menu.addSubMenu(subMenu).addToUi();
}
函数onOpen(){
var ui=SpreadsheetApp.getUi();
var menu=ui.createMenu('OPSWMS CREATER')
.addItem('创建新SWMS','显示提示')
.addSeparator();
var sheetList=SpreadsheetApp.getActiveSpreadsheet().getSheets();
var subMenu=ui.createMenu('OPTest Menu');
对于(变量i=0;i
主要差异摘要:
1) 变量ui
移出循环;然后尽可能重复使用。
2) 变量菜单
已建立并移出循环。这可用于在最后一行代码中添加子菜单。
3) 在.addSeparator()
之后添加了分号(尽管是可选的)
4) 过去常常拿到所有的床单这是OP代码中缺少的第一个关键元素
5) 已删除var numsheets
行。您不需要这个,因为您可以在图纸列表上获得相同的计数
6) 在循环中,有两件事需要注意
sheetList[i]
方括号中的i([i]
)返回“sheetList”中的相关项李>
- 返回工作表的名称。组合使用,
sheetList[i].getName()
为您提供工作表的名称,并允许您将其添加为菜单项选择
7) menu.addSubMenu(subMenu.addToUi()代码>这会将循环的内容添加到菜单中这是OP代码中缺少的第二个关键元素
信贷:
Akshin Jalilov对