Здравствуйте, есть скрипт по переходу при открытии файла в последнюю заполненную ячейку гугл таблицы, но в таблице ячейки заполнены формулами, результат которой равно пусто (пока не выполнится условие) что не так в моем коде, помогите исправить
[vba]
Код
function getLastRow() { let sh = SpreadsheetApp.getActiveSheet(); let C = sh.getRange('B1:B' + sh.getMaxRows()).getDisplayValues(); for (let i = sh.getMaxRows() - 1; i >= 0; i--) { if (C[i] != '') { var LastRow = i + 1; i = 0 }; }; }
[/vba]
Здравствуйте, есть скрипт по переходу при открытии файла в последнюю заполненную ячейку гугл таблицы, но в таблице ячейки заполнены формулами, результат которой равно пусто (пока не выполнится условие) что не так в моем коде, помогите исправить
[vba]
Код
function getLastRow() { let sh = SpreadsheetApp.getActiveSheet(); let C = sh.getRange('B1:B' + sh.getMaxRows()).getDisplayValues(); for (let i = sh.getMaxRows() - 1; i >= 0; i--) { if (C[i] != '') { var LastRow = i + 1; i = 0 }; }; }
мой код, что Вы здесь выложили, это не скрипт перехода, который у Вас есть, это код записи в переменную номера строки последней не пустой ячейки в столбце...((( кросс
мой код, что Вы здесь выложили, это не скрипт перехода, который у Вас есть, это код записи в переменную номера строки последней не пустой ячейки в столбце...((( кроссaliramora191
Анастасия
Сообщение отредактировал aliramora191 - Пятница, 03.12.2021, 08:54
Если нужно получить номер строки последней ячейки в столбце (а не совершить сам "прыжок" в эту ячейку по activate), то я вот за этот код ОТТУДА с добавленным от себя return (иначе же null будет всегда возвращаться в вызывающую функцию): [vba]
Код
function getLastRow() { let sh = SpreadsheetApp.getActiveSheet(); let lastRow = sh.getRange('A' + sh.getMaxRows()).getNextDataCell(SpreadsheetApp.Direction.UP).getRow(); return lastRow; // <-- вот мой вклад в общее дело :) }
[/vba] Но если всё-таки подразумевается сам прыжок в эту ячейку, то всё короче (я изменил название функции, чтобы не путаться): [vba]
Код
function jumpLastRow() { let sh = SpreadsheetApp.getActiveSheet(); sh.getRange('A' + sh.getMaxRows()).getNextDataCell(SpreadsheetApp.Direction.UP).activate(); }
[/vba]
Если нужно получить номер строки последней ячейки в столбце (а не совершить сам "прыжок" в эту ячейку по activate), то я вот за этот код ОТТУДА с добавленным от себя return (иначе же null будет всегда возвращаться в вызывающую функцию): [vba]
Код
function getLastRow() { let sh = SpreadsheetApp.getActiveSheet(); let lastRow = sh.getRange('A' + sh.getMaxRows()).getNextDataCell(SpreadsheetApp.Direction.UP).getRow(); return lastRow; // <-- вот мой вклад в общее дело :) }
[/vba] Но если всё-таки подразумевается сам прыжок в эту ячейку, то всё короче (я изменил название функции, чтобы не путаться): [vba]
Код
function jumpLastRow() { let sh = SpreadsheetApp.getActiveSheet(); sh.getRange('A' + sh.getMaxRows()).getNextDataCell(SpreadsheetApp.Direction.UP).activate(); }