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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. פונקציית משנה אקסל

פונקציית משנה אקסל

מתוזמן נעוץ נעול הועבר תכנות
4 פוסטים 2 כותבים 167 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • פ מנותק
    פ מנותק
    פלורידה
    כתב ב נערך לאחרונה על ידי פלורידה
    #1

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

    ניסיתי ליצור את הפונציה הבאה

    Public Function מספרקטגורי(wordText As String) As Variant
    
    מספרקטגורי = Application.Index(Sheets("גיליון1").Range("T6:BF356"), Match("כא.", Sheets("גיליון1").Range("S6: S356"), 0), Match("wordText", Sheets("גיליון1").Range("T6:BF6"), 0))
     
    End Function
    
    

    השתמשתי בהצהרה wordText בפונקציית המשנה Match, האם זוהי הסיבה שפונקציה אינה פועלת?

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

      @פלורידה יש כאן טעות:

      ... Match("wordText", ...
      

      שים לב, אתה מעביר לפונקציה Match מחרוזת קבועה שמכילה את התווים 'wordText' ולא את האובייקט wordText שמכיל את הערך שמועבר לפונקציה מספרקטגורי מהגליון.
      כדי להעביר את הערך, אתה צריך להעביר את האובייקט בלי להקיף את שמו בגרשיים, כך:

      ... Match(wordText, ...
      

      אגב, אני ממליץ לך מאוד לא להתפתות לתת שמות בעברית לפונקציות. עדיף לקרוא לפונקציה CatalogNumber.

      פ תגובה 1 תגובה אחרונה
      4
      • פ מנותק
        פ מנותק
        פלורידה
        השיב לOdedDvir ב נערך לאחרונה על ידי
        #3

        @odeddvir

        תודה לך.

        רק להשלמת העניין:
        היתה בעיה נוספת חמורה לא פחות.
        בקריאה לפונקצייה Match יש להוסיף Application.
        ככה:

        Public Function מספרקטגורי(wordText As String) As Variant
        
        מספרקטגורי = Application.Index(Sheets("מקט").Range("T6:BF356"), Application.Match("כא.", Sheets("מקט").Range("S6: S356"), 1), Application.Match(wordText, Sheets("מקט").Range("T6:BF6"), 1))
         
        End Function
        

        ובאגב, מהי הסיבה העומדת מאחורי ההמלצה?

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

          @פלורידה אמר בפונקציית משנה אקסל:

          מהי הסיבה העומדת מאחורי ההמלצה?

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

          ראית פעם דבר כזה:
          "...על המחשב שלך Windows אנו מתקינים את"
          למה זה קורה? כי מישהו במייקרוסופט שכח להגדיר נכון את כיוון הפיסקה.

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

          תגובה 1 תגובה אחרונה
          3
          • dovidD dovid העביר נושא זה מ-תכנות ב-

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

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

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