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
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().
@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ę.
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;
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?
<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:
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.
@jawlo:
ok, to sprawdźmy czy robię to dobrze od początku.
- Wchodzę w dany arkusz google
- Narzędzia>edytor skryptów
- Otwiera mi się okienko kod.gs tam wklejam powyższy kod
- Klikam uruchom
Coś robię źle?
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);
}
@jawlo: Działa :D Dzięki bardzo mi pomogłeś ;)