Открыть URL из следующей ячейки в Google Sheets - PullRequest
3 голосов
/ 07 октября 2019

Я использую Google Sheets.

У меня есть 2 кнопки: кнопка запуска (при нажатии открывается первый URL из ячейки B2) и кнопка далее (когданажал должен открыть B3 URL, затем B4, затем B5 и т. д.). Проблема в следующей функции.

Может кто-нибудь помочь мне с этой проблемой?

function start(){
  var i=2;
  open(i);
}

function open(i){
  var selection = SpreadsheetApp.getActiveSheet().getRange('B'+ i).getValue();
  var html = "<script>window.open('" + selection + "');google.script.host.close();</script>";
  var userInterface = HtmlService.createHtmlOutput(html);
  SpreadsheetApp.getUi().showModalDialog(userInterface, 'Opening page...');
}

function next(i){
  i++;
  open(i);
}

1 Ответ

1 голос
/ 07 октября 2019

Когда вы вызываете function next(i), i не определено.

Если вы хотите сохранить значение i между двумя вызовами скрипта, вам нужно использовать PropertiesService ,Таким образом, ScriptProperties позволяет сохранить значение переменной между двумя вызовами скрипта.

Пример:

function start(){
  var i=2;
  PropertiesService.getScriptProperties().setProperty("i", i)
  open(i);
}

function open(i){
  var selection = SpreadsheetApp.getActiveSheet().getRange('B'+ i).getValue();
  var html = "<script>window.open('" + selection + "');google.script.host.close();</script>";
  var userInterface = HtmlService.createHtmlOutput(html);
  SpreadsheetApp.getUi().showModalDialog(userInterface, 'Opening page...');
}

function next(){
  var i=PropertiesService.getScriptProperties().getProperty("i")
  i++;
  PropertiesService.getScriptProperties().setProperty("i", i)
  open(i);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...