Hirdetés

Új hozzászólás Aktív témák

  • Mutt

    senior tag

    válasz pube111 #46859 üzenetére

    Szia,

    Az eredeti kódban van pár hiba:
    1. var calendarID = spreadsheet.getRange("C4").getValue();
    C4-es cellára hivatkozik a kód, de a minta fájlban inkább B3-ban van a naptár-azonosító.
    2. var eventCal = CalendarApp.getCalendarById("calendarId");
    Itt 2 hiba is van; nem kell aposztrófok közé tenni a calendarId-t a végén és helyesen is kell írni a változó nevét, ami calendarID.

    Ezen hibák miatt nem fog tudni csatlakozni a naptárhoz, nem tud beleírni. Ez eredményezi a cannot read hibaüzenetet.

    Egy kicsit átdolgoztam a kódot.

    function scheduleShifts() {
    //csatlakozás a google tablázatok aktív munkalapjához
    const spreadsheet = SpreadsheetApp.getActiveSheet();
    //a C2-es cellában lévő naptárazonosító kiolvasása
    const calendarID = spreadsheet.getRange("C2").getValue();
    //csatlakozás a fent megadott naptárhoz
    const eventCal = CalendarApp.getCalendarById(calendarID);
    //utolsó használt sor azonosítója
    const lastRow = spreadsheet.getLastRow();

    if (lastRow >= 5) {
    //5-ös sortól kezdve kiolvassuk az adatokat
    for (let i = 5; i <=lastRow; i++) {
    //ha az aktuális sor D oszlopa üres, akkor A,B,C oszlopok alapján létrehozzuk az eseményt
    if (spreadsheet.getRange("D" + i).getValue() == "") {
    let title = spreadsheet.getRange("C" + i).getValue();
    let startTime = spreadsheet.getRange("A" + i).getValue();
    let endTime = spreadsheet.getRange("B" + i).getValue();
    eventCal.createEvent(title, startTime, endTime);

    //D-oszlopba teszünk egy x-et
    spreadsheet.getRange("D" + i).setValue("x");
    }
    }
    }
    }

    A sablon hozzá pedig így néz ki:

    A kód az 5-ös sortól indulva minden eseményt hozzáad a naptárhoz, ahol a kész oszlop üres.
    A kommentek alapján tudod finomítani.

    üdv

Új hozzászólás Aktív témák