דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • 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. מדריך | מאקרו למתחילים חלק 5: לולאה בתוך לולאה

מדריך | מאקרו למתחילים חלק 5: לולאה בתוך לולאה

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

    לולאה בתוך לולאה

    אז במדריך הקודם ראינו איך משלבים לולאה מתמשכת בתוך הלולאה (תנאי If), שידע לעשות דברים שונים לפי המיקום.
    אבל מה נעשה אם נרצה למלא לא רק עמודה אחת כלפי מטה, אלא שטח שלם? כמו טבלה?
    כלומר: אנחנו רוצים למלא את לוח הכפל, או למלא נתונים לרוחב ולא רק בתא A
    אז בעז"ה נראה היום איך עושים "לולאה בתוך לולאה" (לולאה כפולה).
    אז יש לנו את הפקודה הזאת:

    Sub LoopInsideLoop()
        Dim i As Integer
        Dim j As Integer
        
        For i = 1 To 5
            For j = 1 To 4
                
                Cells(i, j).Value = "שורה " & i & " כיסא " & j
                
            Next j
        Next i
    End Sub
    

    da08680c-1061-462e-a217-9f3ae8de7fd4-image.png
    הקטע הראשון והאחרון – מוכרים מהמדריכים הקודמים ככלי יסוד לכל מאקרו.
    אחרי זה יש לנו:

    Dim i As Integer
    Dim j As Integer
    

    כלומר: משתנים של הלולאה וכאן אנחנו צריכים שני משתנים אחד יספור את השורות ( i) ואחד יספור את העמודות (j)
    והנקודה החשובה בקוד זה הקטע הזה

    For i = 1 To 5
        For j = 1 To 5
    

    כאן קורה הלולאה השנייה אנחנו אומרים למחשב:
    תתפוס את שורה מספר 1 (i=1) ואל תעבור לשורה הבאה אלא תריץ לולאה חדשה שתספור מ-1 עד 5 לרוחב (j)
    כלומר: בכל התאים בשורה 1
    בתוך הלולאה אנחנו כותבים:

    Cells(i, j).Value = "שורה " & i & " כיסא " & j
    

    כלומר:
    בתא שנמצא בשורה i ובעמודה j, תכניס את התוצאה של ההכפלה ביניהם.
    מה שקורה בפועל זה:
    המחשב עומד על שורה 1, ורץ: עמודה 1, עמודה 2, עמודה 3... עד 5.
    רק אחרי שהוא סיים את ה-Next j (סיים את השורה לרוחב), הוא מגיע ל-

    Next i
    

    כלומר: עכשיו תרד לשורה מספר 2, ותתחיל את כל הסיבוב של העמודות מהתחלה.
    למעשה בשתי מילים
    הלולאה החיצונית (i) מחזיקה את השורה, והלולאה הפנימית (j) וממלאת את התאים באותה שורה, עד שעוברים לשורה הבאה
    כמובן שאין צורך להסביר למה זה מנפק"מ
    מספיק התמונה הבאה
    19cb436e-3553-4247-b346-419359865ec4-image.png
    כמו שאנחנו רואים זה ממלא לנו את כל הטבלה לארוך ולרוחב עם מספור אוטמטי!
    בהצלחה!

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

    • התחברות

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

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