Jak otworzyć plik Arkuszy Google i przejść od razu do końca pliku

14

Mam arkusz kalkulacyjny Google ze 100 liniami.

Za każdym razem, gdy otwieram ten plik, chcę wstawić wiersz na końcu mojej tabeli.

Jak mogę przejść do ostatniego wiersza tabeli po otwarciu dokumentu?

Ponieważ w tej chwili muszę przewinąć w dół, aby móc wstawić nową linię.

Możesz to zrobić
źródło
1
Czy wystarczyłaby kombinacja klawiszy? Ctrl + End powinien przejść do końca pliku.
ale
1
@AlE .: Czy Ctrl + End również przechodzi do ostatniej kolumny? Nie mam okna systemu Windows do testowania, ale na Macu odpowiedni skrót (⌘ + Fn + ➔) przechodzi do ostatniego wiersza, ostatniej kolumny.
Vidar S. Ramdal,
@Vidar: Tak, prawdopodobnie. (W tej chwili nie mam możliwości go przetestować.) Dość łatwo to naprawić, naciskając następnie Homeklawisz.
ale

Odpowiedzi:

11

Możesz utworzyć wyzwalacz, który będzie uruchamiany przy każdym otwarciu arkusza kalkulacyjnego.

Przejdź do Narzędzia → Edytor skryptów i wklej następujące elementy:

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);
}

Kliknij przycisk Zapisz , a następnie zamknij edytor skryptów i arkusz kalkulacyjny.

Teraz otwórz ponownie arkusz kalkulacyjny. Daj mu kilka sekund, a powinieneś zobaczyć, że nowy wiersz jest wstawiany na końcu arkusza i że ten wiersz jest zaznaczony.

Utworzyłem ten arkusz kalkulacyjny w celu zademonstrowania - możesz go skopiować (kliknij Plik → Kopiuj ). Musisz uruchomić własną kopię, aby skrypt działał poprawnie.

Skrypt wyjaśnił:

Nazwa onOpenfunkcji ma specjalne znaczenie. Zobacz dokumentację . Wymaga pojedynczego argumentu, Eventobiektu . Jego sourcewłaściwość odnosi się do otwieranego arkusza kalkulacyjnego. Za pomocą arkusza kalkulacyjnego możemy getLastRow()znaleźć indeks ostatniego wiersza zawierającego treść . getMaxRows()daje nam maksymalną liczbę wierszy w arkuszu, nawet pustych. Dzięki tej wiedzy możemy sprawdzić, czy ostatni wiersz ma treść - jeśli tak, dołączamy nowy, pusty wiersz. Wreszcie możemy utworzyć zakres i wywołać setActiveRangego, aby przejść do ostatniego rzędu.


Jeśli chcesz tylko przejść do ostatniego wiersza, nie wstawiając niczego, skrypt można uprościć w następujący sposób:

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);
}
Vidar S. Ramdal
źródło
bardzo dziękuję za Twoją pomoc! Spróbuję tego później. Dziękujemy za
poświęcony
1
to nie idź do ostatniej linii z tekstem, jak chcę. :( dotyczy ostatniego wiersza zawierającego formuły.
UcanDoIt
1
czy możesz mi pomóc, więc przechodzi do ostatniego wiersza z tekstem?
UcanDoIt
1
ok, jestem w pracy i nie mam tutaj dostępu do Google, ale zrobię to później. Spróbuję teraz ze słowami ... W arkuszu kalkulacyjnym mam formuły, w kolumnach, aż do wiersza 1000. I wstawiłem dane do wiersza 200 (tylko). Więc z twoim rozwiązaniem, kiedy otwieram dokument, przechodzi on do linii 1000, i chciałem, aby przechodził do linii 200, abym mógł po prostu wstawić nowe dane w następnej dostępnej linii.
UcanDoIt
1
@Hamideh Jak wiadomo, nie ma zdarzenia wyzwalanego podczas przełączania między arkuszami w tym samym dokumencie. W takim przypadku to podejście nie zadziałałoby.
Vidar S. Ramdal
3

Jeśli masz dodatkowy problem polegający na tym, że niektóre kolumny są wypełnione formułami do końca i chcesz przewinąć do pierwszego wiersza, który zawiera dane nie będące formułami, oto podejście. W tym przypadku kolumna A ma formuły do ​​końca, więc przewijam do pierwszej pustej komórki w kolumnie B w wierszu 5 lub niższym.

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++;
    }
}

Jak wskazuje druga odpowiedź, należy otworzyć Narzędzia → Edytor skryptów , wkleić tę funkcję, nazwać swój „projekt”, zapisać i ponownie załadować arkusz kalkulacyjny.

Robert Tupelo-Schneck
źródło