Skrypt Arkusz Google

0

Hej,
Próbuje znaleźć informacje jak zrobić skrypt który będzie otwierał w zależności od miesiąca odpowiednią kartę w arkuszach, w kwietniu automatycznie będzie przeskakiwał na kartę kwiecień po uruchomieniu itd.
Ewentualnie aby otwierał się na ostatnio edytowanej karcie.
Liczę na waszą fachową pomoc
Pozdrawiam

1

Każda karta w arkuszu ma swój nr gid.
Adres poszczególnych kart w arkuszu różni się końcówką (np. gid=332054141).
Jeżeli utworzysz wszystkie karty to będziesz znał gid poszczególnych kart.
Teraz wystarczy do adresu podstawowego dokleić gid z bieżącego miesiąca i masz adres właściwej karty.
W javascript numer miesiąca możesz pobrać funkcją getMonth().

0

@jawlo: a mógłbyś podać przykład takiego skryptu?
Nie wiem jak za to się zabrać bo dopiero zaczynam przygodę z Javascript a zależy mi na tym aby zrobić taką funkcję.

1

Spróbuj tego:

const label=[0,1578659242,345221804,160420357]; //tabela zawiera id poszczególnych arkuszy (występują na końcu  adresu arkusza po "gid=")
let link="tutaj wklej adres arkusza np. https://docs.google.com/.../edit#gid=";
let today=new Date();
let month=today.getMonth();
let sheetLink=link+label[month];

window.location.href=sheetLink;
0

@jawlo:

function onOpen() {
const label=[1947065535,1891867045,351151957,1418608949,1480909435,2082054146,2000780476,1934171382,62046844,1934128893,270776952,1589019272];
let link="https://docs.google.com/spreadsheets/d/11QpvV-d03Dh-G-wfjInxJZPPXkxO_oJzTdVzcTktEJ4/edit#gid=";
let today=new Date();
let month=today.getMonth();
let sheetLink=link+label[month];

window.location.href=sheetLink;
}

Wstawiłem coś takiego, próbowałem też z function func() ale też nie działa, wywala taki błąd:


ReferenceError: window is not defined
onOpen  @ Kod.gs:8

Co robię źle?

0
<script>
function onOpen() {
const label=[1947065535,1891867045,351151957,1418608949,1480909435,2082054146,2000780476,1934171382,62046844,1934128893,270776952,1589019272];
let link="https://docs.google.com/spreadsheets/d/11QpvV-d03Dh-G-wfjInxJZPPXkxO_oJzTdVzcTktEJ4/edit#gid=";
let today=new Date();
let month=today.getMonth();
let sheetLink=link+label[month];

window.location.href=sheetLink;
}

onOpen();
</script>

U mnie powyższy kod działa:
screenshot-20210429141742.png

Dostałem odmowę dostępu bo nie znam hasła.
Ja u siebie jak testowałem to mam zapamiętane hasło do arkusza i automatycznie mi się otwiera.

0

@jawlo:
ok, to sprawdźmy czy robię to dobrze od początku.

  1. Wchodzę w dany arkusz google
  2. Narzędzia>edytor skryptów
  3. Otwiera mi się okienko kod.gs tam wklejam powyższy kod
  4. Klikam uruchom
    Coś robię źle?
    screenshot-20210429145433.png
1

Kod, który powyżej przestawiłem jest napisany w JavaScript i zapisany w pliku HTML jako strona, którą można uruchamiać z przekierowaniem na arkusz googla.

Jeżeli chcesz to zrobić w skryptach google to spróbuj poniższego kodu:

function onOpen(e) {
var today=new Date();
var month=today.getMonth();
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
spreadsheet.setActiveSheet(spreadsheet.getSheets()[month], true);
}
0

@jawlo: Działa :D Dzięki bardzo mi pomogłeś ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0