У меня есть Google Sheet, где верхние 3 строки, включая заголовки столбцов, заморожены. Когда пользовательские данные вводятся в ячейку A1, мой сценарий копирует их в ячейку в другой строке электронной таблицы и активирует эту ячейку, чтобы она была видна пользователю, даже если эта строка была прокручена вне поля зрения. Все это работает правильно, пока я не добавлю следующую строку кода - чтобы повторно активировать ячейку A1 для следующего ввода пользователя.
Вот пример сценария, который я использую для устранения проблемы. Я новичок в Google Apps Script. Любая помощь будет оценена по достоинству.
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();
}
}
sleep
. Я просто активировал ячейку для прокрутки,flush()
отредактировал ее, а затем снова активировал ячейку ввода. Работал как шарм! 22.07.2020