רוצה להפוך משימות חוזרות ונשנות באקסל באמצעות VBA? למד כיצד להשתמש בלולאה For Every כדי לתפעל ביעילות נתונים בגיליונות האלקטרוניים שלך.
לולאות ו-VBA הולכים ביחד, וגם מסיבה טובה. בעת התמודדות עם אובייקטים של Microsoft Office כמו חוברות עבודה, גליונות עבודה וטווחים, לולאות יכולות לעזור לך לעבור בין כל אחד מהם בקלות יחסית.
בעוד שפחות או יותר כל לולאות ה-VBA עובדות היטב עם אובייקטים, לולאת "לכל אחד" היא אחת האפשרויות הטובות ביותר לעבוד עם אוספי אובייקטים. אם אתה חדש ב-Excel VBA ואתה מחפש לשלוט בכל לולאה, אתה יכול ללמוד מכמה מהדוגמאות האלה במהירות. הנה כל מה שאתה צריך לדעת על הלולאה המהותית הזו.
עבור התחביר של כל לולאה
תחביר עבור כל לולאה דומה למדי לתחביר לולאה הרגיל ב-Excel VBA. הנה התחביר:
עבור כל משתנה_שם ב-object_collection
[הַצהָרָה]
[הַצהָרָה]
[הַצהָרָה]
המשתנה_שם הבא
הלולאה מתחילה במילת המפתח "לכל"; אתה יכול להשתמש בכל שם משתנה, ואחריו אוסף האובייקטים. האובייקט של כל לולאה יכול להיות תאים, טווחים, גיליונות ואפילו חוברות עבודה. כזה הוא היופי של הלולאה הזו; זה נותן לך את הגמישות לעבוד עם אוספי Excel שונים.
הלולאה עוברת דרך כל ערך אוסף ומאחסנת את ההפניה בשם המשתנה המוגדר. לאחר הביצוע, VBA מבצע את ההצהרות המאוחסנות בתוך הלולאה ועובר לאובייקט הבא באוסף (ה הַבָּא מילת מפתח מועילה כאן). בואו נבין את מבנה הקוד בעזרת דוגמה בסיסית.
כיצד להשתמש ב-For Every Loop ב-Excel VBA
נניח שברצונך להדפיס מספר בתאים A1 עד A10. הגישה הטובה ביותר היא להשתמש בכל לולאה עם פונקציית הטווח ולתת לקוד לעשות את הדרוש. כך תוכל לבצע את המשימה הפשוטה הזו:
- פתח את עורך הקוד של VBA על ידי לחיצה Alt + F11.
- הכנס מודול על ידי לחיצה על מודול אפשרות בתוך לְהַכנִיס לשונית.
- צור תת שגרה באמצעות הפקודה sub() בחלון מודול עורך הקוד. ודא שאתה מקצה שם משמעותי לתת-השגרה. עבור דוגמה זו, אתה יכול להשתמש בשם עבור_כל_לולאה.
כעת, כשהיסודות אינם מהדרך, הגיע הזמן להתחיל לכתוב את הקוד. בתוך תת-השגרה, הקלד את הפקודות הבאות:
תא עמום כפי ש טווח
לכל תא ב גיליונות("גיליון 1").טווח("A1:A10")
cell.value = 10
התא הבא
כאשר הקוד מופעל, ה- ג משתנה יאחסן את הערך של A1. לאחר מכן, כאשר הוא עובר למשפט בתוך הלולאה, הוא מעריך את הפקודה ומזין ערך של 10 בתא המוגדר, כלומר, תא A1.
לבסוף, כאשר הוא עובר למילת המפתח הבא, הוא עובר לערך הבא, כלומר, תא A2. הלולאה פועלת עד שהיא מגיעה לתא A10. זה הפלט הסופי:
שימוש בלולאה עם אובייקטים: תאים, גיליונות וחוברות עבודה
ל- Excel שלושה סוגי אובייקטים עיקריים שאתה עובד איתם באופן קבוע. אלו הם תאים, גיליונות וחוברות עבודה. הנה איך אתה יכול להשתמש בלולאה עם כל שלושת סוגי האובייקטים.
עבודה עם תאים ולולאות ביחד
נניח שאתה רוצה להוסיף ערך וכמה תנאי עיצוב לטווח של תאים ב-Sheet1. כשלב ראשון, עליך להגדיר את התנאים בתוך הלולאה, ולאחר מכן את פקודות העיצוב.
הקלד את הקוד הבא בתוך תת שגרה.
Sub for_each_loop()
עמום ג כפי ש טווח
עבור כל c ב-Sheets("גיליון 1").טווח("A1:A10")
עם ג
.ערך = 10
.גוֹפָן. צבע = vbRed
.גוֹפָן. מודגש = נָכוֹן
.גוֹפָן. קו חוצה = נָכוֹן
סוֹףעם
הבא ג
סוֹף תַת
ה עם הפונקציה שימושית בעת ביצוע פונקציות מרובות עם אובייקט ספציפי אחד. מכיוון שאתה רוצה לבצע סדרה של משימות עם המשתנה c, אתה יכול לשלב את כולן באמצעות a with..end with function.
הלולאה משווה את הערך של c לכל ערך תא ומזינה את הערך כ-10. בנוסף, הוא משנה את צבע התא לאדום, מבהיר את הערך ומחדד אותו. ברגע שהוא משלים את כל השלבים, הוא עובר לערך המוגדר הבא בטווח.
שימוש בלולאה לשליטה בגליונות
בדומה לדוגמא לעיל, אתה יכול להשתמש ב- עבור כל לולאה כדי לשלוט בגיליונות. מה דעתך לשנות את השם של Sheet1 ל-Sheet3 באמצעות VBA?
אתה יכול להשתמש בקוד הבא כדי לשנות שם של גליון עבודה קיים ב-Excel באמצעות VBA:
Sub for_each_loop_sheets()
לכל אחדשפטבחוברת עבודה זו.גיליונות
אם sht. שם = "גיליון 1" לאחר מכן
שפט. שם = "גיליון 3"
סוֹףאם
הרגע הבא
סוֹף תַת
הקוד עובר בלולאה בכל גיליון בחוברת העבודה ובודק את השם של כל גיליון. אם הוא נתקל בשם Sheet1, הוא משנה אותו ל-Sheet3. זה מתקדם דרך הגיליונות הנותרים, אם בכלל, בתוך חוברת העבודה. ברגע שביצוע הקוד מגיע לגיליון האחרון, הוא יוצא מהלולאה ומתת-השגרה.
בין כמה שימושים נפוצים אחרים, אתה יכול מיזוג גליונות עבודה מרובים באמצעות VBA ועדכן את התוכן בגיליון בודד באמצעות לולאות.
מעבר בין חוברות עבודה באמצעות הלולאה
לבסוף, אתה יכול להשתמש בכל לולאה כדי לעבור בין חוברות עבודה שונות ולבצע משימות ספציפיות. בואו נדגים את הפונקציה הזו עם דוגמה.
אתה יכול להשתמש בפקודות VBA כדי להוסיף שלוש חוברות עבודה חדשות ולסגור את כל הפתוחות יחד. כך תוכל לעשות זאת:
Sub loop_wrkbook()
ספר עבודה עמום כפי ש חוברת עבודה
חוברות עבודה.לְהוֹסִיף
חוברות עבודה.לְהוֹסִיף
חוברות עבודה.לְהוֹסִיף
עבור כל ספר עבודה בחוברות עבודה
ספר עבודה.סגור
ספר העבודה הבא
סוֹף תַת
הקוד לעיל יסגור גם את חוברת העבודה המאקרו שלך; ודא ששמרת את הקודים שלך לפני הפעלת קוד זה.
מכיוון שללולאות יש שימושים מרובים, אתה יכול גם לאחד נתונים ממספר חוברות עבודה לחוברת עבודה אחת.
שימוש בהצהרת IF מקונן עם הלולאה
כמו הדוגמה לעיל, אתה יכול להשתמש במשפט IF בתוך הלולאה כדי לבדוק אם יש תנאים ספציפיים. בואו נשנה את צבע הרקע של התא בהתבסס על ערכי התא.
יש כמה מספרים אקראיים בתאים A1:A20. אתה יכול לכתוב לולאה כדי לעבור דרך כל תא נתון בטווח; אם ערך התא קטן מ-10, צבע התא אמור להשתנות לאדום. אם ערך התא עולה על 10, הוא אמור להפוך לירוק. השתמש בקוד הבא למטרה זו:
Sub loop_w_if()
עמום ג כפי ש טווח
עבור כל c ב-Sheets("גיליון 4").טווח("A1:A20")
אםג.ערך < 10 לאחר מכן
ג. פְּנִים. ColorIndex = 3
אַחֵר:ג. פְּנִים. ColorIndex = 4
סוֹףאם
הבא ג
סוֹף תַת
כך נראה הפלט:
שימוש בלולאות ב- Excel VBA
Excel VBA אינו מוגבל רק ללולאה עבור כל לולאה. יש מגוון של לולאות מועילות המאפשרות לך לבצע פונקציות שונות בקלות. תתייעץ עם משימות שגרתיות, ידניות, מכיוון שהלולאות של VBA כמו לולאת for, עשה תוך כדי, ועשה עד שלולאות נכנסות פנימה כדי להקל על חייך.