У меня есть очень простой сценарий, который запускается каждые 15 минут, чтобы повторно алфавитировать лист на основе даты этого дня. Работает отлично, кроме одного вопроса. Лист используют около 8-10 пользователей в любой момент времени. Если пользователь активно печатает в ячейке, когда функция запускается и лист восстанавливается, тогда, когда он заканчивает вводить ячейку, он отредактировал неправильную ячейку. Например, если они начинают редактировать ячейку D24, а затем после ее восстановления эта строка становится D28, то, когда они нажимают Enter, они перезаписывают новый D24.
Можно ли как-нибудь включить что-то в код, чтобы проверить, есть ли какие-либо ячейки, которые активно редактируются (выделены серым цветом, потому что внутри кто-то есть)? Или какое-то другое решение, которое решило бы эту проблему?
function Alphabetize() {
var spreadsheet = SpreadsheetApp.getActive()
var now = new Date();
var name = Utilities.formatDate(now,"EST","MM-dd")
var day = now.getDay()
var sheet = spreadsheet.getSheetByName(name)
var col = sheet.getLastColumn()
var row = sheet.getLastRow()
var range = sheet.getRange(3, 1, row, col)
range.sort({column: 1, ascending: true})
}