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();   
  }
}