Как открыть файл Google Sheets и сразу перейти к концу файла


14

У меня есть таблица Google с 100 строками.

Каждый раз, когда я открываю этот файл, я хочу вставить строку в конец моей таблицы.

Как я могу перейти к последней строке таблицы при открытии документа?

Потому что сейчас мне нужно прокрутить вниз, чтобы можно было вставить новую строку.


1
Будет ли достаточной комбинация клавиш? Ctrl + End должен перейти к концу файла.
эль

1
@AlE .: Ctrl + End также перемещается в последний столбец? У меня нет окна Windows для тестирования, но на Mac соответствующий ярлык (⌘ + Fn + ➔) перемещается в последнюю строку, последний столбец.
Видар С. Рамдал

@ Видар: Да, наверное. (У меня нет возможности проверить это в данный момент.) Довольно легко исправить, нажав на Homeключ.
эль

Ответы:


11

Вы можете создать триггер, который запускается каждый раз, когда открывается ваша электронная таблица.

Перейдите в Инструменты → Редактор скриптов и вставьте следующее:

function onOpen(e) {
  var spreadsheet = e.source;
  var sheet = spreadsheet.getActiveSheet();
  var lastRow = spreadsheet.getLastRow();
  if (sheet.getMaxRows() == lastRow) {
    sheet.appendRow([""]);
  }
  lastRow = lastRow + 1;
  var range = sheet.getRange("A" + lastRow + ":A" + lastRow);
  sheet.setActiveRange(range);
}

Нажмите кнопку Сохранить , затем закройте редактор сценариев и электронную таблицу.

Теперь откройте свою таблицу снова. Дайте ему пару секунд, и вы должны увидеть, что новая строка вставлена ​​в конец вашего листа, и что эта строка выбрана.

Я создал эту таблицу для демонстрации - не стесняйтесь ее копировать (нажмите Файл → Копировать ). Вам нужно будет запустить свою собственную копию, чтобы успешно запустить скрипт.

Сценарий объяснил:

Имя onOpenфункции имеет особое значение. Смотрите документацию . Требуется единственный аргумент, Eventобъект . Его sourceсвойство является ссылкой на открываемую электронную таблицу. С помощью электронной таблицы мы можем getLastRow()найти индекс последней строки, в которой есть содержимое . getMaxRows()дает нам максимальное количество строк в листе, даже пустых. Обладая этим знанием, мы можем видеть, имеет ли последняя строка содержимое - если да, мы добавляем новую пустую строку. Наконец, мы можем создать диапазон и вызвать setActiveRangeего, чтобы перейти к последнему ряду.


Если вы просто хотите перейти к последней строке, не вставляя ничего, скрипт можно упростить так:

function onOpen(e) {
  var spreadsheet = e.source;
  var sheet = spreadsheet.getActiveSheet();
  var lastRow = spreadsheet.getLastRow();
  var range = sheet.getRange("A" + lastRow + ":A" + lastRow);
  sheet.setActiveRange(range);
}

большое спасибо за вашу помощь! Я попробую это позже. Спасибо за ваше время и помощь
UcanDoIt

1
это не идет для последней строки с текстом, как я хочу. :( Это относится к последней строке, которая имеет формулы.
UcanDoIt

1
Можете ли вы помочь мне, так что это касается последней строки с текстом?
UcanDoIt

1
Хорошо, я на работе и не имею доступа к Google здесь, но сделаю это позже ... Попробую сейчас со словами ... В моей таблице есть формулы, в столбцах, до строки 1000. И я вставил данные до строки 200 (только). Итак, с вашим решением, когда я открываю документ, он переходит на строку 1000, и я хотел, чтобы он перешел на строку 200, чтобы я мог просто вставить новые данные в следующую доступную строку.
UcanDoIt

1
@Hamideh. При переключении между листами в одном и том же документе события не инициируются, как мне известно. Таким образом, этот подход не будет работать в этом случае.
Видар С. Рамдал

3

Если у вас возникла дополнительная проблема, заключающаяся в том, что некоторые столбцы заполнены формулами до конца, и вы хотите прокрутить до первой строки, в которой есть данные, не имеющие формул, вот подход. В этом случае столбец A имеет формулы полностью вниз, поэтому я прокручиваю до первой пустой ячейки в столбце B в строке 5 или ниже.

function onOpen(e) {
    var spreadsheet = e.source;
    var sheet = spreadsheet.getActiveSheet();
    var row = 5;
    while (true) {
        var range = sheet.getRange("B" + row);
        if (!range.getValue()) {
            sheet.setActiveRange(range);
            return;
        }
        row++;
    }
}

Как показывает другой ответ, вы должны открыть Инструменты → Редактор скриптов , вставить в эту функцию, назвать свой «проект», сохранить и перезагрузить электронную таблицу.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.