Спасибо! Может кому будет нужно. Конечный вид итоговой функции без необходимости использования триггеров: function onOpen() { let lastRow = SpreadsheetApp.getActiveSheet().getLastRow() SpreadsheetApp.getActiveSheet().getRange(lastRow, 1).activate() } "Инструменты -> Редактор скриптов" такого пункта у меня не было, зато открылось то же самое через "Расширения -> Apps Script"
Добрый день! Подскажите, как сделать так, чтобы эта функция ещё срабатывала и при отключении любого фильтра по столбцам? Т.е. после снятия фильтра возврат в последнюю заполненную ячейку таблицы.
Подскажите, пожалуйста, как быть, если нужно попасть в конец конкретного столбца, при условии, что столбцы имеют разную длину, и именно этот короче остальных.
Добрый день! Огромное спасибо за скрипт! Подскажите, всё работает на обычной таблице, но когда пытаешься запустить его в таблице с закреплённой шапкой, ничего не происходит. Можно это как-то исправить?
Очень полезная инфа, но в моем случае не работает... т.к у меня есть строки в которых присутствуют нули... и по этому скрипт прокручивает до самого конца листа. Наверняка можно подкрутить этот скрипт, чтобы ориентир был на последнюю заполненную строку ОПРЕДЕЛЕННОГО СТОЛБЦА. Кто знает как решить задачу?
Здравствуйте! Спасибо за скрипт. Возможно ли его распространить на все листы и что бы скрипт срабатывал при открытии новых листов тоже, а не только после перезагрузки самого файла?
@@sreda31 Спасибо за оперативный ответ. Скорее всего опускает в самый низ таблицы из-за формулы (массива). Но мне прям очень понравилось! Пойду посмотрю на ваши курсы.
Круто, выражаю признательность! Жаль только, что применяется к активному листу, а не к листам всей книги (всего файла). При переходе на другой лист, открывается первая строка (первая ячейка) нужно каждый раз нажимать "обновить" страницу, вот бы автоматически показывала таблица на всех листах сразу последнюю строчку без вынужденного ручного обновления.
Добрый день! Подскажи пожалуйста как это сделать в гугл таблице? Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 And Target.Row > 1 And Not IsEmpty(Target.Value) Then _ Target.Offset(0, -1).Value = Date End Sub может что то не так написал извиняюсь так как не сильно что то понимаю. Цель что бы при написании чего либо в ячейке B3 например, в ячейке А3 автоматически ставилась дата и не менялась на следующий день. За ранее спасибо.
Вопрос такой, а можно ли сделать этот скрипт, что бы он не последнюю строчку открывал, а последний столбец заполненный, так как у меня вправо таблица заполняется по столбцам, и каждый раз при открытие очень муторно ползунок в право доводить.
Вы сами устанавливаете, у кого будет доступ к вашим данным, так что ваша безопасность полностью в ваших руках. Волноваться стоит при использовании скриптов от неизвестных или непроверенных разработчиков. В своем собственном скрипте вы вряд ли закладывали какой-то «лишний» функционал.
Здравствуйте! 1. В инструментах у меня нету "скриптов", в гугле нашел apps script, но он не ставиться как приложение. Что я делаю не так ? 2. При тесте кода выдает ошибку Сам код: function getLastRow() { let LastRow = SpreadsheetApp.getActiveSheet().getLastRow() SpreadsheetApp.getActiveSheet().getRange(lastRow, 3).activate() } 3. При тесте выдает ошибку: lastrow undefined
У вас ошибка в коде let lastRow , а не LastRow это ответ на 2е, на 1е - у вас возможно нет доступа к таблице как создателя ее , а не пользователя с редактированием.
Здравствуйте! Сделала все по вашему уроку, но журнал выдает такую ошибку "TypeError: SpreadsheetApp.getActiveSheet.getRange is not a function". В чем может быть ошибка?
Спасибо за видео! А можно сделать не на последнюю заполненную, а на нужную ячейку. Есть ячейка с координатами по которым нужно перейти.. как сослаться на эту ячейку? Либо сделать сразу скрипт "На последнюю измененную ячейку", а не просто на последнюю. Либо ваше "+1" сделать минус ссылка на ячейку с нужной цифрой, которая сминусует нужное кол.во строк. Не понимаю как это сделать. Помогите пожалуйста.
Чтобы перескакивал на последнюю ячейку на каждом нескрытом листе: function onOpen() { const ss = SpreadsheetApp.getActiveSpreadsheet() const sheets = ss.getSheets() const properties = PropertiesService.getDocumentProperties() const lastActiveSheetName = properties.getProperty("lastActiveSheetName") let lastActiveSheet for (let sheet of sheets) { if (!sheet.isSheetHidden()) { const sheetName = sheet.getName() const lastEdit = properties.getProperty(sheetName) if (lastEdit) { if (sheetName !== lastActiveSheetName){ sheet.getLastRow() // Without this magic does not work - I could not figure out the reasons sheet.getLastColumn() // Without this magic does not work - I could not figure out the reasons const [lastRow, lastCol] = lastEdit.split(',') sheet.getRange(Number(lastRow), Number(lastCol)).activate() // With focus set to this cell //sheet.setActiveSelection(sheet.getRange(Number(lastRow), Number(lastCol))) // Without setting focus to this cell } else { lastActiveSheet = sheet } } } } if(lastActiveSheet){ lastActiveSheet.getLastRow() lastActiveSheet.getLastColumn() const [lastRow, lastCol] = properties.getProperty(lastActiveSheetName).split(',') lastActiveSheet.getRange(Number(lastRow), Number(lastCol)).activate() } } function onEdit() { const ss = SpreadsheetApp.getActiveSpreadsheet() const sheet = ss.getActiveSheet() if (!sheet.isSheetHidden()) { const cell = ss.getActiveCell() const row = cell.getRow() const column = cell.getColumn() if (row !== 1 || column !== 1) { // Protection from the evil magic of "self-editing" the first cell const sheetName = sheet.getName() PropertiesService.getDocumentProperties().setProperty(sheetName, `${row},${column}`) PropertiesService.getDocumentProperties().setProperty("lastActiveSheetName", sheetName) } } }
Спасибо!!! Ты помог мне решить большую задачу и сэкономил моё время!!! Пойду гляну, что ещё полезного есть на канале! Палец вверх однозначно👍
Кто будет искать, теперь, эта функция находится в меню "Расширения" → "Apps Script"
Мега круто! спасибо!
Все работает! Спасибо за помощь ❤
очень помогло это видео, РЕСПЕКТ !!!
Отлично! Прям то, что надо!
Спасибо! Давно хотела этому научиться!
Спасибо за полезную инфу!
Спасибо работает 😀❤
Интересное видео. Спасибо.
Спасибо!
Может кому будет нужно. Конечный вид итоговой функции без необходимости использования триггеров:
function onOpen() {
let lastRow = SpreadsheetApp.getActiveSheet().getLastRow()
SpreadsheetApp.getActiveSheet().getRange(lastRow, 1).activate()
}
"Инструменты -> Редактор скриптов" такого пункта у меня не было, зато открылось то же самое через "Расширения -> Apps Script"
Спасибо, у меня тоже небыло редактора скриптов, по видео не получилось, твоя функция сработала
Добрый день! Подскажите, как сделать так, чтобы эта функция ещё срабатывала и при отключении любого фильтра по столбцам? Т.е. после снятия фильтра возврат в последнюю заполненную ячейку таблицы.
огромный респект!
Кайф! очень поможет в работе!!!
Огромное спасибо !!!!
Спасибо! У меня только на последнюю строку (не заполненную, а именно последнюю), подскажите, что может быть не так прописано?
это великолепно!
Подскажите, пожалуйста, как быть, если нужно попасть в конец конкретного столбца, при условии, что столбцы имеют разную длину, и именно этот короче остальных.
Добрый день! Огромное спасибо за скрипт! Подскажите, всё работает на обычной таблице, но когда пытаешься запустить его в таблице с закреплённой шапкой, ничего не происходит. Можно это как-то исправить?
странно, у меня работает с закрепленной шапкой прекрасно. спасибо автору канала!
Очень полезная инфа, но в моем случае не работает... т.к у меня есть строки в которых присутствуют нули... и по этому скрипт прокручивает до самого конца листа. Наверняка можно подкрутить этот скрипт, чтобы ориентир был на последнюю заполненную строку ОПРЕДЕЛЕННОГО СТОЛБЦА. Кто знает как решить задачу?
Спасибо, работает!)
делал во втором файле и там перестало работать - в первом работает, а во втором нет. в чём дело?
Здравствуйте! Спасибо за скрипт. Возможно ли его распространить на все листы и что бы скрипт срабатывал при открытии новых листов тоже, а не только после перезагрузки самого файла?
Скрипты позволяют решать различные задачи довольно гибко. Приходите на вебинар - научим. Ссылка в описании к видео.
СПАСИБО❤🔥
У меня почему-то попадает на последнюю (незаполненную) строку в таблице. Т.е. в самый конец таблицы.
Видимо, ваш скрипт отличается от написанного преподавателем. Просто воспроизведите код из видео.
@@sreda31 Спасибо за оперативный ответ. Скорее всего опускает в самый низ таблицы из-за формулы (массива). Но мне прям очень понравилось! Пойду посмотрю на ваши курсы.
@@sreda31 у меня тоже попадает в конец таблицы, код как в видео, 1 в 1... как поправить можно?
Круто, выражаю признательность! Жаль только, что применяется к активному листу, а не к листам всей книги (всего файла). При переходе на другой лист, открывается первая строка (первая ячейка) нужно каждый раз нажимать "обновить" страницу, вот бы автоматически показывала таблица на всех листах сразу последнюю строчку без вынужденного ручного обновления.
Скрипты позволяют реализовать почти любую фантазию 😁
прописала все буква в букву, вышло примерно ничего
в чем может быть затык??
Добрый день! Подскажи пожалуйста как это сделать в гугл таблице?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Row > 1 And Not IsEmpty(Target.Value) Then _
Target.Offset(0, -1).Value = Date
End Sub
может что то не так написал извиняюсь так как не сильно что то понимаю. Цель что бы при написании чего либо в ячейке B3 например, в ячейке А3 автоматически ставилась дата и не менялась на следующий день. За ранее спасибо.
Добрый день. Отличная новость, на канале уже есть такое видео!
Классные видео
Спасибо!
Подскажите, как установить поиск последний заполненной ячейки не по всему листу, а по одному из столбцов или по диапазону?
Под видео есть ссылка на курс. Приходите, научим!
Добрый день! А можно ли сделать запуск этого скрипта при переходе на новый лист в рамках одного документа?
Скрипты позволяют решать различные задачи довольно гибко. Приходите на вебинар - научим. Ссылка в описании к видео.
Вопрос такой, а можно ли сделать этот скрипт, что бы он не последнюю строчку открывал, а последний столбец заполненный, так как у меня вправо таблица заполняется по столбцам, и каждый раз при открытие очень муторно ползунок в право доводить.
Конечно! Если не получается адаптировать скрипт из видео под собственные нужды, то под видео есть ссылка на курс: приходите, научим.
спасибо, просто настораживает, что гугл ругается, что теперь у кого-то есть доступ к нашей таблице. это безопасно?
Вы сами устанавливаете, у кого будет доступ к вашим данным, так что ваша безопасность полностью в ваших руках.
Волноваться стоит при использовании скриптов от неизвестных или непроверенных разработчиков. В своем собственном скрипте вы вряд ли закладывали какой-то «лишний» функционал.
Здравствуйте!
1. В инструментах у меня нету "скриптов", в гугле нашел apps script, но он не ставиться как приложение.
Что я делаю не так ?
2. При тесте кода выдает ошибку
Сам код:
function getLastRow() {
let LastRow = SpreadsheetApp.getActiveSheet().getLastRow()
SpreadsheetApp.getActiveSheet().getRange(lastRow, 3).activate()
}
3. При тесте выдает ошибку:
lastrow undefined
в последней скобке в скобках надо написать (LastRow, 3)
у Вас то с маленькой, то с большой буквы эта переменная задана
У вас ошибка в коде let lastRow , а не LastRow это ответ на 2е, на 1е - у вас возможно нет доступа к таблице как создателя ее , а не пользователя с редактированием.
Здравствуйте! Сделала все по вашему уроку, но журнал выдает такую ошибку "TypeError: SpreadsheetApp.getActiveSheet.getRange is not a function". В чем может быть ошибка?
Перепроверьте написанный код еще раз. Вероятно, вы что-то упустили.
Спасибо за видео! А можно сделать не на последнюю заполненную, а на нужную ячейку. Есть ячейка с координатами по которым нужно перейти.. как сослаться на эту ячейку? Либо сделать сразу скрипт "На последнюю измененную ячейку", а не просто на последнюю. Либо ваше "+1" сделать минус ссылка на ячейку с нужной цифрой, которая сминусует нужное кол.во строк. Не понимаю как это сделать. Помогите пожалуйста.
Чтобы перескакивал на последнюю ячейку на каждом нескрытом листе:
function onOpen() {
const ss = SpreadsheetApp.getActiveSpreadsheet()
const sheets = ss.getSheets()
const properties = PropertiesService.getDocumentProperties()
const lastActiveSheetName = properties.getProperty("lastActiveSheetName")
let lastActiveSheet
for (let sheet of sheets) {
if (!sheet.isSheetHidden()) {
const sheetName = sheet.getName()
const lastEdit = properties.getProperty(sheetName)
if (lastEdit) {
if (sheetName !== lastActiveSheetName){
sheet.getLastRow() // Without this magic does not work - I could not figure out the reasons
sheet.getLastColumn() // Without this magic does not work - I could not figure out the reasons
const [lastRow, lastCol] = lastEdit.split(',')
sheet.getRange(Number(lastRow), Number(lastCol)).activate() // With focus set to this cell
//sheet.setActiveSelection(sheet.getRange(Number(lastRow), Number(lastCol))) // Without setting focus to this cell
}
else {
lastActiveSheet = sheet
}
}
}
}
if(lastActiveSheet){
lastActiveSheet.getLastRow()
lastActiveSheet.getLastColumn()
const [lastRow, lastCol] = properties.getProperty(lastActiveSheetName).split(',')
lastActiveSheet.getRange(Number(lastRow), Number(lastCol)).activate()
}
}
function onEdit() {
const ss = SpreadsheetApp.getActiveSpreadsheet()
const sheet = ss.getActiveSheet()
if (!sheet.isSheetHidden()) {
const cell = ss.getActiveCell()
const row = cell.getRow()
const column = cell.getColumn()
if (row !== 1 || column !== 1) { // Protection from the evil magic of "self-editing" the first cell
const sheetName = sheet.getName()
PropertiesService.getDocumentProperties().setProperty(sheetName, `${row},${column}`)
PropertiesService.getDocumentProperties().setProperty("lastActiveSheetName", sheetName)
}
}
}