-
Fototrend
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Ú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
-
pube111
senior tag
válasz
pube111
#46856
üzenetére
Itt tartok:
function scheduleShifts() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
var calendarID = spreadsheet.getRange("M1").getValue();
var eventCal = CalendarApp.getCalendarById("calendarID");
var signups = spreadsheet.getRange("A2:C12").getValues();
for (x=0; x<signups.length; x++)
{
var shift = signups[x];
var startTime = shift[0];
var endTime = shift[1];
var volunteer = shift[2];
eventCal.createEvent(volunteer, startTime, endTime);
}
}
ezt a hibát dobja futtatásra:TypeError: Cannot read property 'createEvent' of null
scheduleShifts @ másolás naptárba.gs:14
ez mit jelent? -
Mutt
senior tag
válasz
pube111
#46306
üzenetére
Szia,
Talán vmi ilyen kell:
function sendEmails() {
var alapDatum = new Date(2021,2,1); // 0-11 a hónapok számozása
var maiDatum = new Date();
var ss=SpreadsheetApp.getActiveSpreadsheet();
var cellaA1 = ss.getRange("A1").getValue();
if (cellaA1.length == 0 && maiDatum > alapDatum) {
var emailAddress = 'valami@gmail.com';
var message = 'üzenet';
var subject = 'tárgy';
MailApp.sendEmail(emailAddress, subject, message);
}
}üdv
-
pube111
senior tag
válasz
pube111
#46306
üzenetére
Közben rájöttem, hogy ahhoz meg kell nyitni a táblázatot, hogy lefusson a függvény. Nekem meg a háttérben kellene működnie naponta egyszer.
A szerkesztőben találtam olyan triggert, hogy naponta fusson le a szkript. Ehhez viszont a szkriptbe kellene betenni a cella és dátum figyelést.
Azt meg lehet oldani?
Új hozzászólás Aktív témák
- PC Game Pass előfizetés
- Játékkulcsok ! : PC Steam, EA App, Ubisoft, Windows és egyéb játékok
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- The Elder Scrolls Online Imperial Collector s Edition
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- HP Pavilion Plus 14-ey0155ng Ryzen 5-7540 / 16GB / 512GB FHD+ Garancia
- LG 27GR95UM - 27" MiniLED - UHD 4K - 160Hz 1ms - NVIDIA G-Sync - FreeSync Premium PRO - HDR 1000
- Új Lenovo Thinkbook 14 G7 WUXGA IPS Ultra7 155H 16mag 32GB 1TB SSD Intel Arc Win11 Pro Garancia
- 1TB, 512GB, 256GB m-SATA SSD-k
- Eladó EDIFIER ES prémium hangszórók ES300 / ES60 / ES20
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Fferi50