עזרה בגוגל סקריפט
-
יש לי קובץ שיטס שלוקח נתונים מהרשת באמצעות נוסחת
=IMPORTxml
הנוסחה עצמה כתובה בגוגל סקריפט והגדרתי טריגר לכל דקה
ראיתי שזה לא מעדכן, אז הכנסתי פקודה שימחוק את התא הנוכחי וישים מחדש את הנוסחה,
ועדיין זה לא מתעדכן
ורק כשאני מוחק את הנוסחה ידנית מהגליון ומחזיר אותה רק אז זה מתעדכן
יש מה לעשות כדי שזה באמת יתעדכן כל דקה באופן אוטומטי??נ.ב אציין שאין בעיה (פיזית) בקוד הוא כן רץ אבל הוא מביא את הנתונים מאוחר
-
@למה-מה-קרה כתב בעזרה בגוגל סקריפט:
ורק כשאני מוחק את הנוסחה ידנית מהגליון ומחזיר אותה רק אז זה מתעדכן
אתה צריך שהלינק עצמו ישתנה, תוסיף באופן רנדומלי לסוף הלינק
?1243
שים לב, שאם תעשה את זה כל דקה אתה עשוי בהחלט לעבור את המגבלה של גוגל (מניסיון) לא הייתי ממליץ על פחות מ15 דק'.
-
@למה-מה-קרה תוכל להשתמש בפונקציה הזו בשביל זה
function myFunction() { let cell = SpreadsheetApp.getActiveSheet().getRange('גיליון1!A1'); let value = cell.getValue(); let newValue = value.replace(/\d{4}$/, ''); var randomDigits = Math.floor(Math.random() * 10000); randomDigits = ("0000" + randomDigits).slice(-4); newValue += "?" + randomDigits; cell.setValue(newValue); }
את הערך של הurl (הראשון) בפונקציה
=IMPORTxml
תשים כהפניה לתא שעליו תריץ את הקוד לעיל. -
@למה-מה-קרה עדכנתי את הקוד כך שיטפל בכל הנוסחה, פשוט תגדיר את הפרמטרים של הנוסחה בשורות 2,3,4 ואת התא בשורה 5.
function myFunction() { let url = `https://en.wikipedia.org/wiki/Moon_landing`; // כאן תשים את הלינק ל-XML let xpath_query = `//a/@href`; // הפרמטר השני let locale = `en_US`; // הפרמטר השלישי let cell = SpreadsheetApp.getActiveSheet().getRange('גיליון1!A1'); // התא שבו תהיה הנוסחה var randomDigits = Math.floor(Math.random() * 10000); randomDigits = ("0000" + randomDigits).slice(-4); url += "?" + randomDigits; let value = `=IMPORTXML("${url}", "${xpath_query}", "${locale}")`; Logger.log(value) cell.setValue(value); }
-
@למה-מה-קרה איפה השינוי הרנדומלי של הurl?