הפעלת סקריפט בגוגל שיטס
-
כרגע מתאפשר לי להפעיל סקריפט רק במחשב ולא באפלקצייה בפלאפון איך אני יכול להפעיל את הסקריפט בכל זאת אולי דרך הפעלת הסקריפט מרחוק?
@בער כתב בהפעלת סקריפט בגוגל שיטס:
כרגע מתאפשר לי להפעיל סקריפט רק במחשב ולא באפלקצייה בפלאפון איך אני יכול להפעיל את הסקריפט בכל זאת אולי דרך הפעלת הסקריפט מרחוק?
אני חושב על פתרון כמו הפעלת הסקריפט ע"י טריגר, משהו ברעיון שהסקריפט יופעל כשבתא מסוים (לדוגמא A1) כתוב 1
אפשרי? -
@בער כתב בהפעלת סקריפט בגוגל שיטס:
כרגע מתאפשר לי להפעיל סקריפט רק במחשב ולא באפלקצייה בפלאפון איך אני יכול להפעיל את הסקריפט בכל זאת אולי דרך הפעלת הסקריפט מרחוק?
אני חושב על פתרון כמו הפעלת הסקריפט ע"י טריגר, משהו ברעיון שהסקריפט יופעל כשבתא מסוים (לדוגמא A1) כתוב 1
אפשרי? -
@מיכאלוש כתב בהפעלת סקריפט בגוגל שיטס:
@בער בהגדרות הטריגר...
אני מסתכל שם, אבל לא רואה שהטריגר קורה כשיש שינוי בתא מסוים או עריכה בתא מסוים, קשה לי להבין מתי הטריגר יקרה......
-
@מיכאלוש כן, זה מה שניסיתי לעשות הרגע..... אבל רק דלגתי שורה כבר הוא הפעיל את הסקריפט ואני רוצה שימתין עד שאני יגמור את העבודה....
אולי יש פתרון אחר?...... -
@מיכאלוש כן, זה מה שניסיתי לעשות הרגע..... אבל רק דלגתי שורה כבר הוא הפעיל את הסקריפט ואני רוצה שימתין עד שאני יגמור את העבודה....
אולי יש פתרון אחר?......@בער משהוא ידני בסגנון הזה
function blaBla() { let blabla = SpreadsheetApp.getActiveSheet().getRange('A1').getValue() if (blabla === 'כן') { //code blabla.setValue(לא); } }
יש לציין שלא בדקתי עם הקוד תקין אבל העקרון הוא שהוא יזהה שבתא A1 כתוב כן אז... ובסוף יחזיר ללא
תפעיל על הקוד הזה טריגר נניח פעם בדקה -
@בער משהוא ידני בסגנון הזה
function blaBla() { let blabla = SpreadsheetApp.getActiveSheet().getRange('A1').getValue() if (blabla === 'כן') { //code blabla.setValue(לא); } }
יש לציין שלא בדקתי עם הקוד תקין אבל העקרון הוא שהוא יזהה שבתא A1 כתוב כן אז... ובסוף יחזיר ללא
תפעיל על הקוד הזה טריגר נניח פעם בדקה -
@בער משהוא ידני בסגנון הזה
function blaBla() { let blabla = SpreadsheetApp.getActiveSheet().getRange('A1').getValue() if (blabla === 'כן') { //code blabla.setValue(לא); } }
יש לציין שלא בדקתי עם הקוד תקין אבל העקרון הוא שהוא יזהה שבתא A1 כתוב כן אז... ובסוף יחזיר ללא
תפעיל על הקוד הזה טריגר נניח פעם בדקה@מיכאלוש כתב בהפעלת סקריפט בגוגל שיטס:
function blaBla() { let blabla = SpreadsheetApp.getActiveSheet().getRange('A1').getValue() if (blabla === 'כן') { //code blabla.setValue(לא); }
אם הכוונה להוסיף את זה בסקריפט עצמו, הוספתי בסוף הסקריפט ורשם לי שגיאה בשמירה.
-
כרגע מתאפשר לי להפעיל סקריפט רק במחשב ולא באפלקצייה בפלאפון איך אני יכול להפעיל את הסקריפט בכל זאת אולי דרך הפעלת הסקריפט מרחוק?
@בער טריגר בעת עריכה, ותגדיר לתא מסויים ע"י שימוש ב
function onEdit(e) { var sheetName = "שם הגיליון"; var cellA1 = "A1"; var sheet_e = e.source.getActiveSheet().getName(); var cell_e = e.range.getA1Notation(); Logger.log(e) Logger.log(sheet_e) Logger.log(cell_e) if (sheet_e !== sheetName || cell_e !== cellA1) { Logger.log("The edited cell is not A1 = " + sheet_e + cell_e) return; } else { Logger.log("An edit was detected in cell A1 running a script..."); } }
-
@בער טריגר בעת עריכה, ותגדיר לתא מסויים ע"י שימוש ב
function onEdit(e) { var sheetName = "שם הגיליון"; var cellA1 = "A1"; var sheet_e = e.source.getActiveSheet().getName(); var cell_e = e.range.getA1Notation(); Logger.log(e) Logger.log(sheet_e) Logger.log(cell_e) if (sheet_e !== sheetName || cell_e !== cellA1) { Logger.log("The edited cell is not A1 = " + sheet_e + cell_e) return; } else { Logger.log("An edit was detected in cell A1 running a script..."); } }
@אביי כתב בהפעלת סקריפט בגוגל שיטס:
@בער טריגר בעת עריכה, ותגדיר לתא מסויים ע"י שימוש ב
function onEdit(e) { var sheetName = "שם הגיליון"; var cellH11 = "A1"; var sheet_e = e.source.getActiveSheet().getName(); var cell_e = e.range.getA1Notation(); Logger.log(e) Logger.log(sheet_e) Logger.log(cell_e) if (sheet_e !== sheetName || cell_e !== cellA1) { Logger.log("The edited cell is not A1 = " + sheet_e + cell_e) return; } else { Logger.log("An edit was detected in cell A1 running a script..."); } }
זה נשמע טוב.... אבל איפה אני כותב את זה בסקריפט עצמו? במקום אחר? איפה?
-
@אביי כתב בהפעלת סקריפט בגוגל שיטס:
@בער טריגר בעת עריכה, ותגדיר לתא מסויים ע"י שימוש ב
function onEdit(e) { var sheetName = "שם הגיליון"; var cellH11 = "A1"; var sheet_e = e.source.getActiveSheet().getName(); var cell_e = e.range.getA1Notation(); Logger.log(e) Logger.log(sheet_e) Logger.log(cell_e) if (sheet_e !== sheetName || cell_e !== cellA1) { Logger.log("The edited cell is not A1 = " + sheet_e + cell_e) return; } else { Logger.log("An edit was detected in cell A1 running a script..."); } }
זה נשמע טוב.... אבל איפה אני כותב את זה בסקריפט עצמו? במקום אחר? איפה?
-
@אביי כתב בהפעלת סקריפט בגוגל שיטס:
@בער טריגר בעת עריכה, ותגדיר לתא מסויים ע"י שימוש ב
function onEdit(e) { var sheetName = "שם הגיליון"; var cellH11 = "A1"; var sheet_e = e.source.getActiveSheet().getName(); var cell_e = e.range.getA1Notation(); Logger.log(e) Logger.log(sheet_e) Logger.log(cell_e) if (sheet_e !== sheetName || cell_e !== cellA1) { Logger.log("The edited cell is not A1 = " + sheet_e + cell_e) return; } else { Logger.log("An edit was detected in cell A1 running a script..."); } }
זה נשמע טוב.... אבל איפה אני כותב את זה בסקריפט עצמו? במקום אחר? איפה?
-
@בער תפתח את עורך הסקריפטים של הקובץ, תדביק שם את הקוד הנ"ל, תתאים את שם הגיליון והתא הרלוונטיים. ובתוך הelse תשים קריאה לפונקציה שאתה רוצה להפעיל, נניח לפונקציה בשם logTo תכתוב כך:
logTo();
@אביי כתב בהפעלת סקריפט בגוגל שיטס:
@בער תפתח את עורך הסקריפטים של הקובץ, תדביק שם את הקוד הנ"ל, תתאים את שם הגיליון והתא הרלוונטיים. ובתוך הif תשים קריאה לפונקציה שאתה רוצה להפעיל, נניח לפונקציה בשם logTo תכתוב כך:
logTo();
לפונקציה שלי קוראים "myFunction20" איפה בתוך הif אני כותב את זה
@בער כתב בהפעלת סקריפט בגוגל שיטס:
function onEdit(e) { var sheetName = "מחשבון מילוי פחיות"; var cellH11 = "A1"; var sheet_e = e.source.getActiveSheet().getName(); var cell_e = e.range.getA1Notation(); Logger.log(e) Logger.log(sheet_e) Logger.log(cell_e) if (sheet_e !== sheetName || cell_e !== cellA1) { myFunction20(); } else { Logger.log("An edit was detected in cell A1 running a script..."); } }
כתבתי ככה ולא מפעיל לי
-
@אביי כתב בהפעלת סקריפט בגוגל שיטס:
@בער תפתח את עורך הסקריפטים של הקובץ, תדביק שם את הקוד הנ"ל, תתאים את שם הגיליון והתא הרלוונטיים. ובתוך הif תשים קריאה לפונקציה שאתה רוצה להפעיל, נניח לפונקציה בשם logTo תכתוב כך:
logTo();
לפונקציה שלי קוראים "myFunction20" איפה בתוך הif אני כותב את זה
@בער כתב בהפעלת סקריפט בגוגל שיטס:
function onEdit(e) { var sheetName = "מחשבון מילוי פחיות"; var cellH11 = "A1"; var sheet_e = e.source.getActiveSheet().getName(); var cell_e = e.range.getA1Notation(); Logger.log(e) Logger.log(sheet_e) Logger.log(cell_e) if (sheet_e !== sheetName || cell_e !== cellA1) { myFunction20(); } else { Logger.log("An edit was detected in cell A1 running a script..."); } }
כתבתי ככה ולא מפעיל לי
-
@אביי
עוד שאלה
אם אני רוצה להוסיף עוד פונקציה כזאת לאותו קובץ, צריך לשנות משהו בשם של הפונקציה? כמו לכתוב onEdit1 onEdit2?
עוד שאלה
יש אפשרות בתוך סקריפט שחלק מהסקריפט נמצא בקובץ אחד וחלק עובד על קובץ שני?@בער כתב בהפעלת סקריפט בגוגל שיטס:
אם אני רוצה להוסיף עוד פונקציה כזאת לאותו קובץ, צריך לשנות משהו בשם של הפונקציה? כמו לכתוב onEdit1 onEdit2?
לא. אפשר להגדיר רק טריגר עריכה אחד, אבל אפשר לעשות ככה:
function onEdit(e) { var sheetName1 = "מחשבון מילוי פחיות"; var cell1 = "A1"; var sheetName2 = "מחשבון מילוי פחיות"; var cell2 = "A2"; var sheet_e = e.source.getActiveSheet().getName(); var cell_e = e.range.getA1Notation(); Logger.log(e) Logger.log(sheet_e) Logger.log(cell_e) if (sheet_e == sheetName1 || cell_e == cell1) { // כאן תרשום את שם הפונקצי להרצה במקרה וערכת את תא A1 } else if (sheet_e == sheetName2 || cell_e == cell2) { // כאן תרשום את שם הפונקציה להרצה במידה וערכת את תא A2 } else { // כאן תרשום מה יקרה במידה והתא הנערך אינו אחד מהקודמים (ניתן להשאיר ריק) } }
אתה יכול להוסיף כמה טווחים וelse if שאתה רוצה...