Неверное объявление текущей переменной ячейки в скрипте Google Apps - PullRequest
0 голосов
/ 27 января 2020

У меня довольно большой опыт написания формул в Google Sheets, чтобы можно было автоматизировать ввод данных из Google Forms.

Сейчас я пытаюсь развить это, изучая скрипт приложений. Я пытаюсь написать скрипт, который будет

  1. запускаться при открытии листа
  2. Работать непрерывно в фоновом режиме, проверяя, является ли текущая ячейка A1. (Я пытаюсь сделать это, используя while l oop, для условия, которое всегда будет истинным.)
  3. Удалите содержимое F1

На данный момент код работает независимо от того, какая ячейка активна. От отладки я думаю, что это потому, что оператор if написан неправильно, а также то, что переменная CurrentCell не объявляется должным образом.

Это код, который у меня есть в настоящее время:

    function DeleteCell() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var num1 = 1


  // run the following loop
  do {


    // add 1 to num1
    num1++;

var CurrentCell = sheet.getCurrentCell();    
    // if the current cell is A1
    if(CurrentCell==1,1)
       {

  sheet.getCurrentCell().offset(0, 5, 1, 1).activate();
  sheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
  var CurrentCell = sheet.getCurrentCell()
       }

  }while (num1 > 5); // continue running the loop while num1 is greater than five


};

1 Ответ

1 голос
/ 28 января 2020

Возможно, это означает, что нужно:

function clearRange() {
  var ss=SpreadsheetApp.getActive();
  var sheet=ss.getActiveSheet();
  var num1=1;
  do {
    num1++;
    var CurrentCell=sheet.getCurrentCell();//Current cell is a range    
    if(CurrentCell.getA1Notation()=='A1') {
      sheet.getCurrentCell().offset(0, 5, 1, 1).clear({contentsOnly: true, skipFilteredRows: true});
    }
  }while(num1<5);
}

К сожалению, он не будет работать в фоновом режиме, и если ваш разрешенный запуск произойдет, то в какой-то момент истечет время ожидания, а количество времени, которое он запустил, будет равно вычтено из вашей дневной квоты.

Я не уверен, что вы пытаетесь выполнить sh, но я думаю, что может быть лучше сделать это с помощью триггера onEdit.

триггеры

В большинстве сценариев не так много причин использовать активацию. Они используют их в макросах, потому что они в основном следуют за каждым вашим шагом. Когда вы запускаете сценарии, вы не хотите останавливаться между каждым шагом, и если бы вы это сделали, вы могли бы намного лучше проинформировать пользователя с помощью модального диалога.

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