תחומים
    • הרשמה
    • התחברות
    • חיפוש
    • קטגוריות
    • פוסטים אחרונים
    • משתמשים
    • חיפוש
    חוקי הפורום

    סוגריים מסולסלים vba

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

      זה הקוד שלי.

      הבעיה בשורה 6 שאני משתמש בסוגריים מסולסלים (כמו שהייתי משתמש בפונקציה בתוך הגליון.)
      כנראה שאי אפשר ב-vba
      יש משהו במקום??

      Public Function m_kata(wordText As String) As Variant
      מסכת= ActiveSheet.Range("A6")
      tanivchar = Selection
      amuda1 = ActiveSheet.ListObjects("טבלה2").ListColumns(1)
      amudanivchar = ActiveSheet.ListObjects("טבלה2").ListColumns(3)
      דף= Application.VLookup(tanivchar, Application.Choose({1, 2}, amudanivchar, amuda1), 2, 0)
      m_kata = Application.Index(Sheets("מקט").Range("T6:BF356"), Application.Match(דף, Sheets("מקט").Range("S6: S356"), 0), Application.Match(מסכת, Sheets("מקט").Range("T6:BF6"), 0))
      
      End Function
      

      בגליון אני משתמש בזה ככה: (כמובן הפוך LTR)

      =VLOOKUP(A1,CHOOSE({1,2}, טבלה2[עמודה3], טבלה2[עמודה1]), 2, 0)

      OdedDvir תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • OdedDvir
        OdedDvir @פלורידה נערך לאחרונה על ידי OdedDvir

        @פלורידה אמר בסוגריים מסולסלים vba:
        הטעות היא שהפונקציה Choose צריכה לקבל טווח, ושפת VBA לא מפרשת סוגריים מסולסלות בתור טווח.
        הפתרון הוא להעביר את הטווח הרצוי כמחרוזת לפונקציה Range, כך:

        Choose(Range("{1, 2}"), amudanivchar, amuda1)
        
        פ תגובה 1 תגובה אחרונה תגובה ציטוט 2
        • פ
          פלורידה @OdedDvir נערך לאחרונה על ידי פלורידה

          @odeddvir

          6df0a0d9-92f6-4f14-93e4-914c0432bf41-image.png

          הוא עדיין מראה על שגיאה.


          אני רואה כאן, שמציעים להתשמש ב Array(1, 2) במקום {1,2}

          לי אישית הקוד עדיין אינו פועל, אך מסיבה אחרת

          OdedDvir תגובה 1 תגובה אחרונה תגובה ציטוט 1
          • OdedDvir
            OdedDvir @פלורידה נערך לאחרונה על ידי

            @פלורידה אתה צודק, אי אפשר להשתמש ב-Range עבור מערכים.
            תצרף את הקוד שעשית עם Array, ואת הודעת השגיאה שקיבלת.

            פ תגובה 1 תגובה אחרונה תגובה ציטוט 1
            • פ
              פלורידה @OdedDvir נערך לאחרונה על ידי פלורידה

              @odeddvir

              אין לי שגיאה ברוך ה'.
              אלא שהתוצאה של הפונקציה היא: #N/A.

              מבדיקה שערכתי הבעיה היא בשורות 4,6
              (החלופות שנתתי להם בשורות 5,7 פועלות כראוי.)

              Public Function m_kata(wordText As String) As Variant
              masecet = ActiveSheet.Range("A6")
              tanivchar = Selection
              amuda1 = ActiveSheet.ListObjects("טבלה24").ListColumns(1)
              'amuda1 = Sheets("מקט").Range("c25:c35")
              amudanivchar = ActiveSheet.ListObjects("טבלה24").ListColumns(3)
              'amudanivchar = Sheets("מקט").Range("e25:e35")
              daf = Application.VLookup(tanivchar, Application.Choose(Array(1, 2), amudanivchar, amuda1), 2, 0)
              
              m_kata = Application.Index(Sheets("מקט").Range("T6:BF356"), Application.Match(daf, Sheets("מקט").Range("S6: S356"), 0), Application.Match(masecet, Sheets("מקט").Range("T6:BF6"), 0))
              
              End Function
              

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

              תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • הועבר מ תכנות ע"י  dovid dovid 
              • 1 / 1
              • פוסט ראשון
                פוסט אחרון
              בא תתחבר לדף היומי!