דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. APP SCRIPT האם שייך meta programming? (קוד JS שמריץ string כקוד JS)

APP SCRIPT האם שייך meta programming? (קוד JS שמריץ string כקוד JS)

מתוזמן נעוץ נעול הועבר תכנות
5 פוסטים 2 כותבים 159 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • Y.Excel.AccessY מנותק
    Y.Excel.AccessY מנותק
    Y.Excel.Access
    כתב ב נערך לאחרונה על ידי
    #1

    האם שייך meta programming ב APP SCRIPT ?
    (קוד JS שמריץ string כקוד JS)

    האם אפשר ליצור פונקציה בשיטס (UDF או רק ב APP SCRIPT שלו) בשם "RUNJS(MyCode : string)"?

    Y.Excel.Access @ gmail.com

    OdedDvirO תגובה 1 תגובה אחרונה
    0
    • OdedDvirO מנותק
      OdedDvirO מנותק
      OdedDvir
      השיב לY.Excel.Access ב נערך לאחרונה על ידי OdedDvir
      #2

      @Y-Excel-Access לכאורה אפשר על ידי הפונקציה eval():

      eval("Logger.log('Hello world')")
      
      Y.Excel.AccessY תגובה 1 תגובה אחרונה
      1
      • Y.Excel.AccessY מנותק
        Y.Excel.AccessY מנותק
        Y.Excel.Access
        השיב לOdedDvir ב נערך לאחרונה על ידי
        #3

        @OdedDvir הקוד

        function RunJS(){
          var TEXT = "var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange(a500).setvalue(\"Runing!\");";
          eval(TEXT);
        }
        

        מחזיר שגיאת

        ReferenceError: a500 is not defined
        

        אולי זה כן עובד, רק צריך לגשת אל הגוגל שיטס כאילו זה סקריפט חיצוני?

        Y.Excel.Access @ gmail.com

        OdedDvirO תגובה 1 תגובה אחרונה
        0
        • OdedDvirO מנותק
          OdedDvirO מנותק
          OdedDvir
          השיב לY.Excel.Access ב נערך לאחרונה על ידי
          #4

          @Y-Excel-Access נראה שנפלה לך טעות קטנה בהקלדה. צ"ל כך:

          function RunJS() {
            var TEXT = "var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange('a5').setValue('Running!');"
            eval(TEXT);
          }
          
          Y.Excel.AccessY תגובה 1 תגובה אחרונה
          2
          • Y.Excel.AccessY מנותק
            Y.Excel.AccessY מנותק
            Y.Excel.Access
            השיב לOdedDvir ב נערך לאחרונה על ידי Y.Excel.Access
            #5

            @OdedDvir תודה רבה! עובד מצוין.
            כמו שהערת היה לי טעות בקוד. הקוד המעודכן -

            function RunJS(){
            
              var MyCode = "var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange(\"A500\").setValue(505);"
              eval(MyCode);
            
            }
            

            המסקנה היוצאת מכאן:
            פונקציית eval נקראת כאילו נכתב הקוד ממש באותו סקריפט, ולא כסקריפט חיצוני.
            נפק"מ גם שניסיתי לעשות מזה פונקציית UDF, וזה לא עבד כי

            Exception: You do not have permission to call setValue (שורה 1).
            

            כלומר אין הרשאה לפונקציית UDF לקרוא לsetValue. ולא עזר העיקוף דרך eval.

            Y.Excel.Access @ gmail.com

            תגובה 1 תגובה אחרונה
            0

            בא תתחבר לדף היומי!
            • התחברות

            • אין לך חשבון עדיין? הרשמה

            • התחברו או הירשמו כדי לחפש.
            • פוסט ראשון
              פוסט אחרון
            0
            • דף הבית
            • קטגוריות
            • פוסטים אחרונים
            • משתמשים
            • חיפוש
            • חוקי הפורום