Запуск нескольких листов под одним скриптом Google, синтаксическая ошибка - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь автоматизировать функцию refre sh в моем сценарии. Когда я запускаю код ниже, я получаю синтаксическую ошибку в строке 9 (arr.forEach ..) и не уверен, что я делаю неправильно.

function multipleCallTr(){
  refreshPage1();
}


function refreshPage1() {

  const arr = ['testsheet1', 'testsheet2'];
  arr.forEach(element => {

  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName(element), true);
  SpreadsheetApp.enableAllDataSourcesExecution();
  spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData();
  })
}

Этот код, приведенный ниже, работает, но, очевидно, было бы намного лучше выполнить его через оператор al oop, как я пытаюсь описать выше.

function multipleCallTr(){
  refreshPage1();
  refreshPage2(); 
}


function refreshPage1() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('testsheet1'), true);
  SpreadsheetApp.enableAllDataSourcesExecution();
  spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData();
}

function refreshPage2() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('testsheet2'), true);
  SpreadsheetApp.enableAllDataSourcesExecution();
  spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData();
}

Ответы [ 2 ]

1 голос
/ 12 февраля 2020

Вам необходимо включить V8 (если он не включен для вас), чтобы использовать синтаксис ES6, например стрелку =>

0 голосов
/ 12 февраля 2020

решил, используя это:

function multipleCallTr(){
  refreshPage1();
}


function refreshPage1() {

  i=0
  const arr = ['testsheet1', 'testsheet2'];
  for(i=0; i < arr.length; i++){

  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName(arr[i]), true);
  SpreadsheetApp.enableAllDataSourcesExecution();
  spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData();
  }
}


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...