דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. תוכנות
  3. יישומי אופיס
  4. אקסל
  5. עזרה הדדית - אקסל
  6. מדריך | מאקרו למתחילים חלק 3: לולאות בVBA

מדריך | מאקרו למתחילים חלק 3: לולאות בVBA

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

    אז במדריך הקודם ראינו איך לכתוב קוד וגרמנו לאקסל לכתוב משהו בתא A1 ולצבוע אותו.
    זה שימושי בהחלט אבל זה לתא בודד
    הכוח האמיתי של מאקרו ו-VBA מגיע כשאנחנו רוצים לעשות פעולה פשוטה – אבל על 1,000 שורות בבת אחת.
    במקום לכתוב 1,000 פעמים את הקוד, אנחנו נשתמש בלולאה (Loop).

    לולאה מתמשכת-Loop

    מה זה בעצם לולאה?
    במקום לומר למחשב תבדוק בתא 1 עם יש תנאי כזה ובתא 2 עם יש תא ובתא 3 וכו' אנחנו פשוט אומרים לו לעבור על כל התאים ולבדוק אם יש תנאי מסוים בהם
    ב-VBA זה עובד בדיוק אותו דבר: אנחנו אומרים לאקסל מאיפה להתחיל, איפה לסיים, ומה לעשות בכל שלב.
    הכרת פקודת ה-Cells (תאים)
    לפני שנראה את הלולאה, צריך להכיר שיטה נוספת לפנות לתאים.
    במדריך הקודם השתמשנו ב-Range("A1"). בלולאות יותר נוח להשתמש ב-Cells.
    השיטה היא כזו: Cells(שורה, עמודה).
    למשל: Cells(1, 1) זה תא A1.
    Cells(2, 1) זה תא A2.
    וכן הלאה והלאה

    כתיבת לולאת "For" ראשונה

    ניכנס שוב ל-Module שלנו (כמו שלמדנו: כרטיסיית מפתחים -> Visual Basic).
    34f33544-1e71-4e7f-895b-595e906ef2c5-image.png
    נכתוב מאקרו חדש שממלא את המספרים 1 עד 10 בעמודה הראשונה באופן אוטומטי.

    Sub MyFirstLoop()
        Dim i As Integer
        For i = 1 To 10
            Cells(i, 1).Value = "שורה מספר " & i
        Next i
    End Sub
    

    הסבר על הקוד:
    כמובן שיש לנו את הבסיס שראינו כבר במדריך הראשון

    Sub MyFirstLoop
    

    התחלה ושם המאקרו שבחרנו

    End Sub
    

    סיום המאקרו
    זה פקודות הבסיס
    עכשיו לפקודות הלולאה עצמה

    1. קודם כל הגדרנו משתנה (כלי קיבול למספר)⬇
    Dim i As Integer
    
    1. אח"כ פתחנו לולאה-ההוראה שלנו למחשב מה לעשות
    For i = 1 To 10
    

    כאן למעשה אמרנו למחשב לקחת מ1 עד 10
    3. וכאן הגענו לפעולה עצמה

    Cells(i, 1).Value
    

    במקום לכתוב Range("A1") ואז היינו צריכים להמשיך לכתוב הלאה לכל תא כתבנו

    Cells(i, 1).Value
    

    כלומר: בפעם הראשונה שהלולאה רצה תכתוב לתא 1 בפעם השנייה תשנה את ה"I" שלו לתא 2
    ותכתוב שם את ההוראה
    4. וכאן מגיע ההמשך

    Next i
    

    כלומר: תמשיך לפעולה הבאה
    כך זה יראה בממשק של VBA
    a468bc27-64d7-4d78-a647-6ca07108ae1e-image.png

    וכך נקבל את התוצאה באקסל
    694915a1-0bd9-45e0-a700-dc39d204d968-image.png

    כמובן שעכשיו אנחנו יכולים לשנות את הטקסט למה שנרצה לדוגמא:

    Sub MyFirstLoop()
        Dim i As Integer
        For i = 1 To 10
            Cells(i, 1).Value = "תלמיד מספר " & i
        Next i
    End Sub
    

    למעשה מה ששנינו זה

    Cells(i, 1).Value = "תלמיד מספר " & i
    

    והנה התוצאה
    67ad26ab-875c-4f39-b1a9-1d6e280b152f-image.png

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

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

    • התחברות

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

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