-
@פשוט-אבל-תותח
א׳ כמו שדויד כתב - אתה כותב בצורה מעורפלת יותר מידי.. קצת אינפורמציה לא תזיק.
ב׳ לגבי השאלה שלך: (סליחה דויד שאני עונה אפילו שלא כתב את השאלה נכון וכו׳) משמע שאתה בנית איזו פונקציה מסוימת בגוגל שיטס - ששולחת נתונים ל-API- וכו׳ כלומר זה בעצם גוגל סקריפט, בא נקרא לשד בשמו.
אז לכאורה הכי פשוט שבמקום לעשות מאקרואים ולהשתגע - פשוט בסקריפט לך למקטע של ׳טריגרים׳ ותוסיף טריגר מבוסס זמן - כל 5 דקות - שיריץ את הפונקציה הספציפית שכתבת (זו שנקראת כשלוחצים על ״הקישור״)
ֿהמון גוט שאבעס -
@dovid אמר בהרצת סקריפט מ Googek sheets שיפעיל קישור:
@פשוט-אבל-תותח תשתף איך בנית את הקישור הנפלא שעובד בעת לחיצה.
אתה יכול לראות כאן את המקור וכאן דוגמאות
עריכה:
כיון שראיתי שהשואל הוא @dovid שהוא גם המנהל של הפורום הנפלא הזה, אז אני מוסיף קצת יותר הסבר.
אני השתמשתי עם זה, וגם כמובן עם נוסחת "&" באקסל שתחבר לי תאים בשביל ליצור קישור + תוכן.
ואם נרצה להחכים עוד קצת אז השמתשתי גם אם נוסחתConcatenate
כדי לחבר את כל השורות של קובץ הini
שרציתי ליצור
ובין שורה לשורה הוספתי%0A
כדי שזה ירד שורה בכל פעם -
@chv אמר בהרצת סקריפט מ Googek sheets שיפעיל קישור:
אז לכאורה הכי פשוט שבמקום לעשות מאקרואים ולהשתגע - פשוט בסקריפט לך למקטע של ׳טריגרים׳ ותוסיף טריגר מבוסס זמן - כל 5 דקות - שיריץ את הפונקציה הספציפית שכתבת (זו שנקראת כשלוחצים על ״הקישור״)
זה בעצם מה שניסיתי לעשות, מה שלא הצלחתי זה לכתוב לטריגר להריץ את הקישור. אשמח אם תדריך אותי איך לעשות את זה
-
@פשוט-אבל-תותח
אם הבנתי טוב את שאלתך אתה לא הצלחת להקליט את הלחיצה על הקישור בגיליון של גוגל שיטס
א"כ כאן מדברים על זה -
@פשוט-אבל-תותח אמר בהרצת סקריפט מ Googek sheets שיפעיל קישור:
@chv אמר בהרצת סקריפט מ Googek sheets שיפעיל קישור:
אז לכאורה הכי פשוט שבמקום לעשות מאקרואים ולהשתגע - פשוט בסקריפט לך למקטע של ׳טריגרים׳ ותוסיף טריגר מבוסס זמן - כל 5 דקות - שיריץ את הפונקציה הספציפית שכתבת (זו שנקראת כשלוחצים על ״הקישור״)
זה בעצם מה שניסיתי לעשות, מה שלא הצלחתי זה לכתוב לטריגר להריץ את הקישור. אשמח אם תדריך אותי איך לעשות את זה
מה שהתכוון זה שבמקום שתכתוב טריגר שיפעיל את הקישור
פשוט תפעיל את הפונקציה ע"י טריגר כל כמה זמן -
@שאול-נ-י זה מה שעשיתי , מה שלא הבנתי זה איך אני "אומר" לטריגר להריץ את הקישור
או אולי קצת יותר ברור, גם בהפעלה ידנית שאני עושה כאן
או רכיבי מאקרו זה לא מפעיל ביכלל את הקישוראיך אני גורם שאיזה שהיא פעולה תפעיל את
הקישור
, אח"כ שזה יעבוד כל X זמן הסתדרתי
@chv אמר בהרצת סקריפט מ Googek sheets שיפעיל קישור:
(זו שנקראת כשלוחצים על ״הקישור״)
איך קוראים לפונקציה הזו, איך יוצרים אותה ?
-
@פשוט-אבל-תותח יש בסטאק סקריפט שפותח איזה כתובת שתרצה. הנה:
/** * Open a URL in a new tab. */ function openUrl( url ){ var html = HtmlService.createHtmlOutput('<html><script>' +'window.close = function(){window.setTimeout(function(){google.script.host.close()},9)};' +'var a = document.createElement("a"); a.href="'+url+'"; a.target="_blank";' +'if(document.createEvent){' +' var event=document.createEvent("MouseEvents");' +' if(navigator.userAgent.toLowerCase().indexOf("firefox")>-1){window.document.body.append(a)}' +' event.initEvent("click",true,true); a.dispatchEvent(event);' +'}else{ a.click() }' +'close();' +'</script>' // Offer URL as clickable link in case above code fails. +'<body style="word-break:break-word;font-family:sans-serif;">Failed to open automatically. <a href="'+url+'" target="_blank" onclick="window.close()">Click here to proceed</a>.</body>' +'<script>google.script.host.setHeight(40);google.script.host.setWidth(410)</script>' +'</html>') .setWidth( 90 ).setHeight( 1 ); SpreadsheetApp.getUi().showModalDialog( html, "Opening ..." ); }
פשוט תקרא לפונקציה openURL עם הכתובת שאתה רוצה.
-
@odeddvir אם אפשר הסבר יותר ברור, היו כאן כמה רעיונות ואני התבלבלתי
אני פותח סקריפט חדש ולקרוא לו איך ?
אני נותן דוגמא של כתובת וכמובן שהתוכן משתנה לפי מה שכתוב בגיליון (במשל בתא K4) יהיה במקום המילים מילים להקראה שבדוגמא כאןhttps://www.call2all.co.il/ym/api/UploadTextFile?token=079XXXXX:****&what=ivr2:/M1000.tts&contents=מילים להקראה
-
@פשוט-אבל-תותח פתח סקריפט חדש עם איזה שם שתרצה, ותדביק בו את הקוד.
אם הכתובת נמצאת בתא K4, תוסיף בסוף קריאה לפונקציה כך:openURL(SpreadsheetApp.getActiveSheet().getRange('K4').getValue())
את הסקריפט הזה תריץ כל פרק זמן.
-
פוסט זה נמחק!
-
@odeddvir כתבתי ככה וזה מראהשהפעולה הושלמה, בתכל'ס זה לא שינה כלום
function myFunction() { /** * Open a URL in a new tab. */ function openUrl( url ){ var html = HtmlService.createHtmlOutput('<html><script>' +'window.close = function(){window.setTimeout(function(){google.script.host.close()},9)};' +'var a = document.createElement("a"); a.href="'+url+'"; a.target="_blank";' +'if(document.createEvent){' +' var event=document.createEvent("MouseEvents");' +' if(navigator.userAgent.toLowerCase().indexOf("firefox")>-1){window.document.body.append(a)}' +' event.initEvent("click",true,true); a.dispatchEvent(event);' +'}else{ a.click() }' +'close();' +'</script>' // Offer URL as clickable link in case above code fails. +'<body style="word-break:break-word;font-family:sans-serif;">Failed to open automatically. <a href="'+url+'" target="_blank" onclick="window.close()">Click here to proceed</a>.</body>' +'<script>google.script.host.setHeight(40);google.script.host.setWidth(410)</script>' +'</html>') .setWidth( 90 ).setHeight( 1 ); SpreadsheetApp.getUi().showModalDialog( html, "Opening ..." ); openURL(SpreadsheetApp.getActiveSheet().getRange('K4').getValue()) } }
-
@פשוט-אבל-תותח אם יש לך כמה גליונות, הוא מחפש בראשון, אלא אם כן תציין את שם הגליון:
getRange('MySheet!K4')
-
@פשוט-אבל-תותח תנסה קודם כל לבצע בדיקה פשוטה. האם הקוד הבא עובד, ונפתח חלון של גוגל:
openURL('www.google.com');
עריכה: שמתי לב ששכחת להקיף את כתובת התא בגרשיים (בשורה 23), צריך להיות getRange('K4')
-
-
@פשוט-אבל-תותח ומה אם תציין נתיב מלא, כך:
openURL('http://www.google.com');
-
@פשוט-אבל-תותח בוא נעשה סדר...
את הפונקציה שהבאתי לך אל תשנה. (הוספת את הקריאה לפונקציה בתוך הפונקציה עצמה, וזה גרם לרקורסיה אינסופית).
אחרי הפונקציה תוסיף את השורה שמבצעת קריאה לפונקציה. כך:function openUrl( url ){ // כל הקוד המקורי שלעיל } openURL(SpreadsheetApp.getActiveSheet().getRange('K4').getValue())