Javascript Google Sheets Appscript弹出提示响应并隐藏工作表,直到响应正确
我正在寻找一个脚本来启动一个弹出窗口,提示用户在启动时输入一个代码,它将隐藏所有的工作表,只有一个直到用户输入正确的代码,如果用户没有输入正确的代码,它将继续启动用户提示并隐藏所有工作表,这几乎是一个密码保护的转折点,这就是我到目前为止所做的:Javascript Google Sheets Appscript弹出提示响应并隐藏工作表,直到响应正确,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我正在寻找一个脚本来启动一个弹出窗口,提示用户在启动时输入一个代码,它将隐藏所有的工作表,只有一个直到用户输入正确的代码,如果用户没有输入正确的代码,它将继续启动用户提示并隐藏所有工作表,这几乎是一个密码保护的转折点,这就是我到目前为止所做的: function onOpen() { function hideAllSheetsExcept('Sheet1') { var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets();
function onOpen() {
function hideAllSheetsExcept('Sheet1') {
var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets();
for(var i =0;i<sheets.length;i++){
Logger.log(i);
if(sheets[i].getName()!=sheetName){
sheets[i].hideSheet();
}
}
var quest = Browser.inputBox("Enter the requested value");
if quest == '12345' then
sheets[i].showSheet();
}
}
在文档的打开事件中,您希望不断向用户询问密码,直到密码正确为止
您的代码已进入正确的方向,但需要进行以下修改:
将onOpen更换为one。Browser.inputBox不会在简单触发器上运行。
用while循环替换检查密码是否正确的if语句,只要密码不正确,while循环就会一直询问密码。
要显示所有的工作表,您需要以隐藏工作表时的相同方式循环显示相同的工作表。
函数HIDEALSHEETSEXCEPT不应嵌套在onOpen中,而只能从onOpen中调用。
请参阅以下示例,了解如何实现所需的
功能,当绑定到名为openSheets的函数时
可安装的onOpen触发器:
代码工作得很好,我很感激,是的,虽然它是为循环而做的
function openSheets(){
hideAllSheetsExcept('Sheet1')
}
function hideAllSheetsExcept(sheetName) {
var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets();
for(var i =0;i<sheets.length;i++){
Logger.log(i);
if(sheets[i].getName()!=sheetName){
sheets[i].hideSheet();
}
}
var quest="";
while (quest!='12345'){
quest = Browser.inputBox("Enter the requested value");
}
for(var i =0;i<sheets.length;i++){
sheets[i].showSheet();
}
}