0

Googleスプレッドシート用のスクリプトをいくつかコーディングしています。関数の 1 つは、ユーザー入力を取得する必要があります。その後、他のいくつかの関数で入力を利用する必要があります。その 1 つのサンプルを以下に示します。質問は、入力を使用する必要があるたびに関数「Setup()」を呼び出す必要があるかどうかです。それは、入力を複数回要求することを意味しますが、それはばかげていると私は知っています。

どうすればこれを回避できますか?

ありがとう!

var setupdone = false;

function Setup(){
  if(!setupdone){
    numofTeams = Browser.inputBox('Confirm the number of Teams');
    var ui = Browser.msgBox('Ensure that the teams are arranged according to lane allocations below', Browser.Buttons.OK_CANCEL);
    setupdone = true;
  }

  var semisraw = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Secondary Group 1');
  var range = semisraw.getDataRange();
  values = range.getValues();
};

function numofTeamsprint(){
  Setup();
  Browser.msgBox('Setup is Complete!');
};
4

3 に答える 3

0

numofTeams次のように、 equal を設定して、 isの-1場合にのみ入力を求めることができます。numofTeams< 0

var numofTeams = -1;

function Setup(){
  if (numofTeams < 0) {
    numofTeams = Browser.inputBox('Confirm the number of Teams');
  }
  var ui = Browser.msgBox('Ensure that the teams are arranged according to lane allocations below', Browser.Buttons.OK_CANCEL);
  var semisraw = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Secondary Group 1');
  var range = semisraw.getDataRange();
  values = range.getValues();
};

function numofTeamsprint(){
  Setup();
  Logger.log(values[0][0]);
};

何らかの理由でその入力が再度必要な場合は、 に戻してから-1を実行してSetup()ください。

于 2013-09-27T02:02:31.097 に答える
0

変数をグローバル (関数の外部) として定義すると、それらが設定されているかどうかをテストして確認でき、設定されていない場合にのみプロンプトが表示されます。

var setupDone = false;

function setup () {
  if (!setupDone) {
    // do whatever
    setupDone = true;
  }

}
于 2013-09-27T02:02:50.243 に答える