Скрипт для прокрутки Google Sheet работает, пока я не активирую другую ячейку.Почему? - PullRequest
0 голосов
/ 28 сентября 2019

У меня есть Google Sheet, где верхние 3 строки, включая заголовки столбцов, заморожены.Когда пользовательские данные вводятся в ячейку A1, мой сценарий копирует их в ячейку в другой строке электронной таблицы и активирует эту ячейку, чтобы она была видимой для пользователя, даже если эта строка была прокручена вне поля зрения.Все это работает правильно, пока я не добавлю следующую строку кода - чтобы реактивировать ячейку A1 для следующего ввода пользователя.

Вот пример сценария, который я использую для устранения проблемы.Я очень новичок в скрипте Google Apps.Любая помощь будет оценена.

function onEdit(e) { 
    // Practice script: scroll to show 
    // a cell where new data was just added

    var range = e.range;
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheets()[0];  
    var cellAddress = e.range.getA1Notation(); 
    var inputCell = 'A1';
    var inputData = sheet.getRange(inputCell).getValue(); // get user input       

     // If edited cell was A1, scroll to cell (5,5) and record user input     
     if (cellAddress === inputCell) {
     sheet.getRange(5,5).activate(); 
     sheet.getRange(5,5).setValue(inputData);

     // then reactivate inputCell

     // If the following line is executed, the sheet won't scroll to (5,5) 
     // sheet.getRange(1,1).activate();
  }
}

1 Ответ

1 голос
/ 29 сентября 2019

Если я правильно понимаю ваш вопрос, после редактирования A1 вы хотите:

перейти к ячейке (5,5), подождать, а затем вернуться к A1

Если это так,добавьте задержку с помощью Utilities.sleep (3000) - это будет ждать 3 секунды:

//If the following line is executed, the sheet won't scroll to (5,5) 
SpreadsheetApp.flush();
Utilities.sleep(3000)
sheet.getRange(1,1).activate();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...