Условие для запуска макроса на основе значения ячейки - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь найти оператор IF, который будет запускать мой макрос на основе указанного значения c в одной ячейке. Моя электронная таблица имеет много вкладок. Это для шаблона прогнозирования.

Вот то, что я придумал, но у меня заканчиваются идеи ..

function Sum_Calcs() {
   var spreadsheet = SpreadsheetApp.getActive();
   spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Integrity Check'), true);
   spreadsheet.getRange(K20).getValue(getActiveRange(), true);

if(activeRange === "1") {
}

// Мой сценарий находится ниже //

Любая помощь очень ценится!

1 Ответ

0 голосов
/ 09 января 2020

Вам необходимо

  • реализовать функцию onEdit для переоценки оператора if каждый раз, когда значение в "K20" изменяется (обратите внимание, что оно будет работать автоматически только если значение было изменено человеком вручную *
  • Вторая функция (макрос), которая будет вызываться в операторе if, если ваше условие выполнено

На основе в приведенном выше фрагменте кода есть некоторые вещи, которые необходимо изменить:

  1. Когда вы используете метод getValue () для получения значения ячейки - не указывайте никаких параметров внутри скобки () метода. Вместо этого присвойте возвращаемое значение этого метода переменной
  2. Если вы хотите извлечь значение ячейки (или выполнить любую другую операцию) на определенном листе, используйте getSheetByName () вместо setActiveSheet
  3. Для сравнения в операторе if действительного значения с целым числом (числом) используйте if(activeRange == 1)
  4. Обратите внимание, что при получении диапазона в нотации A1 необходимо использовать кавычки ("")

Пример кода в зависимости от вашей ситуации:

function myForecastMacro(){
  // specify here what shall happen if your "if" statement is fulfilled

function onEdit() {
   var spreadsheet = SpreadsheetApp.getActive();
   var sheet = spreadsheet.getSheetByName('Integrity Check');
   var activeRange=sheet.getRange("K20").getValue();
   if(activeRange == 1) {
     myForecastMacro();
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...