לולאות VBA של Excel: להמשך, עשה בזמן, עשה עד, עבור כל אחת (עם דוגמאות)

כדי להפיק את המקסימום מ- Excel ו- VBA, עליך לדעת כיצד להשתמש בלולאות ביעילות.

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

להלן דוגמה פשוטה לשימוש בלולאות VBA ב- Excel.

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

עכשיו זה כמובן פשוט מאוד בלולאה ב- Excel VBA (ותוכל לעשות זאת גם באמצעות עיצוב מותנה).

בחיים האמיתיים, אתה יכול לעשות הרבה יותר עם לולאות VBA ב- Excel שיכולות לעזור לך לבצע משימות אוטומטיות.

להלן דוגמאות מעשיות נוספות בהן לולאות VBA יכולות להיות שימושיות:

  • לולאה באמצעות מגוון תאים וניתוח כל תא (הדגשת תאים עם טקסט ספציפי בתוכו).
  • עיין בכל גליונות העבודה ועשה משהו עם כל אחד (כגון הגנה/ביטול הגנה עליו).
  • דפדף בכל חוברות העבודה הפתוחות (ושמור כל חוברת עבודה או סגור הכל למעט חוברת העבודה הפעילה).
  • עיין בין כל הדמויות בתא (וחלץ את החלק המספרי ממחרוזת).
  • לולאה דרך כל הערכים מערך.
  • עיין בין כל התרשימים/האובייקטים (ותן גבול או שנה את צבע הרקע).

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

במדריך זה אציג סוגים שונים של לולאות VBA של Excel ואכסה מספר דוגמאות לכל לולאה

הערה: זו הולכת להיות הדרכה ענקית, שבה אנסה לכסות כל לולאת VBA בפירוט. אני ממליץ לך להוסיף סימניה לדף זה לעיון עתידי.

אם אתה מעוניין ללמוד VBA בדרך הקלה, בדוק את שלי הדרכה מקוונת ב- Excel VBA.

ללופ הבא

הלולאה 'For Next' מאפשרת לך לעבור בלוק קוד למספר הפעמים שצוין.

לדוגמה, אם אבקש ממך להוסיף את המספרים השלמים מ -1 עד 10 באופן ידני, היית מוסיף את שני המספרים הראשונים, ואז מוסיף את המספר השלישי לתוצאה, ואז מוסיף את המספר הרביעי לתוצאה, וכך הלאה …

האין זה?

אותו היגיון משמש בלולאה For Next ב- VBA.

אתה מציין כמה פעמים אתה רוצה שהלולאה תרוץ וגם אתה מציין מה אתה רוצה שהקוד יעשה בכל פעם שהלולאה מופעלת.

להלן התחביר של הלולאה For Next:

For Counter = התחל עד הסוף [ערך שלב] [בלוק קוד לביצוע] הבא [מונה]

בלולאה For Next, תוכל להשתמש ב- Counter (או בכל משתנה) שישמש להפעלת הלולאה. מונה זה מאפשר לך להריץ את הלולאה הזו מספר פעמים נדרש.

לדוגמה, אם אני רוצה להוסיף את 10 המספרים השלמים החיוביים הראשונים, אז ערך המונה שלי יהיה מ -1 עד 10.

הבה נבחן כמה דוגמאות כדי להבין טוב יותר כיצד הלולאה For Next עובדת.

דוגמה 1 - הוספת 10 המספרים השלמים החיוביים הראשונים

להלן הקוד שיוסיף את 10 המספרים השלמים החיוביים הראשונים באמצעות לולאה For Next.

לאחר מכן היא תציג תיבת הודעות המציגה את סכום המספרים הללו.

Sub AddNumbers () Dim Total As Integer Dim Number As Integer Total = 0 For Count = 1 to 10 Total = Total + Count Next count MsgBox Total End Sub

בקוד זה, הערך של סך הכל מוגדר ל- 0 לפני הכניסה ללולאה For Next.

ברגע שהוא נכנס ללולאה, הוא מחזיק את הערך הכולל אחרי כל לולאה. אז אחרי הלולאה הראשונה, כאשר המונה הוא 1, ערך 'סך הכל' הופך ל -1, ולאחר הלולאה השנייה הוא הופך ל -3 (1+2) וכן הלאה.

ולבסוף, כאשר הלולאה מסתיימת, למשתנה 'סך הכל' יש את סכום 10 המספרים השלמים החיוביים הראשונים.

MsgBox ואז פשוט מציג את התוצאה בתיבת הודעות.

דוגמה 2 - הוספת חמשת השילובים החיוביים אפילו

כדי לסכם את חמשת המספרים השלמים החיוביים אפילו (כלומר 2,4,6,8 ו -10), אתה צריך קוד דומה עם תנאי להתייחס רק למספרים הזוגיים ולהתעלם מהמספרים האי -זוגיים.

הנה קוד שיעשה זאת:

תת AddEvenNumbers () Dim Total As Integer Dim Number As Integer Total = 0 For Count = 2 to 10 Step 2 Total = Total + Count Next count MsgBox Total End Sub

שים לב שהתחלנו את ערך הספירה מ -2 והשתמשנו גם ב- 'שלב 2‘.

כאשר אתה משתמש 'שלב 2', הוא אומר לקוד להגדיל את ערך 'ספירה' ב -2 בכל פעם שהלולאה מופעלת.

אז ערך הספירה מתחיל מ -2 ואז הופך ל -4, 6, 8 ו -10 כאשר הלולאה מתרחשת.

הערה: דרך נוספת לעשות זאת יכולה להיות הפעלת הלולאה מ -1 עד 10 ובתוך הלולאה יש לבדוק האם המספר שווה או מוזר. עם זאת, שימוש ב- Step, במקרה זה, הוא דרך יעילה יותר מכיוון שהיא אינה דורשת מהלולאה לפעול 10 פעמים, אלא רק 5 פעמים.

ערך ה- Step יכול להיות גם שלילי. במקרה כזה, המונה מתחיל בערך גבוה יותר וממשיך לרדת לפי ערך השלב שצוין.

דוגמה 3 - הזנת מספר סידורי בתאים שנבחרו

תוכל גם להשתמש בלולאת For Next כדי לעבור על אוסף של אובייקטים (כגון תאים או גליונות עבודה או חוברות עבודה),

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

Sub EnterSerialNumber () Dim Rng כטווח Dim Counter כמספר שלם Dim RowCount כמספר שלם Set Rng = Selection RowCount = Rng.Rows.Count For Counter = 1 to RowCount ActiveCell.Offset (Counter - 1, 0) .Value = Counter Next Counter End תַת

הקוד הנ"ל סופר תחילה את מספר השורות שנבחרו ולאחר מכן מקצה ערך זה למשתנה RowCount. לאחר מכן אנו מריצים את הלולאה מ- '1 ל- RowCount'.

שים לב גם שמכיוון שהבחירה יכולה להיות כל מספר שורות, הגדרנו את המשתנה Rng לבחירה (עם השורה 'Set Rng = Selection'). כעת נוכל להשתמש במשתנה 'Rng' כדי להתייחס למבחר בקוד שלנו.

דוגמה 4 - הגן על כל גליונות העבודה בחוברת העבודה הפעילה

תוכל להשתמש בלולאת 'For Next' כדי לעבור על כל גליונות העבודה בחוברת העבודה הפעילה ולהגן (או לבטל הגנה) על כל אחד מדפי העבודה.

להלן הקוד שיעשה זאת:

תת ProtectWorksheets () Dim i כמספר שלם עבור i = 1 ל- ActiveWorkbook.Worksheets.Count גליונות עבודה (i). הגנה על הבא i End Sub

הקוד לעיל סופר את מספר הגיליונות באמצעות ActiveWorkbook.Worksheets.Count. זה אומר ל- VBA כמה פעמים צריך להפעיל את הלולאה.

בכל מקרה, הוא מתייחס לחוברת העבודה הא '(באמצעות גליונות עבודה (i)) ומגן עליו.

אתה יכול להשתמש באותו קוד כדי לבטל את ההגנה על גליונות עבודה. פשוט תשנה את הקו דפי עבודה (i). הגנה ל דפי עבודה (i) .UnProtect.

לולאות 'להבא' מקוננות

אתה יכול להשתמש בלולאות 'For Next' מקוננות כדי לבצע אוטומציה מורכבת יותר ב- Excel. לולאת 'For Next' מקוננת פירושה שיש לולאה 'For Next' בתוך לולאה 'For Next'.

תן לי להראות לך כיצד להשתמש בזה באמצעות דוגמה.

נניח שיש לי 5 חוברות עבודה פתוחות במערכת שלי ואני רוצה להגן על כל גליונות העבודה בכל חוברות העבודה האלה.

להלן הקוד שיעשה זאת:

Sub ProtectWorksheets () Dim i As Integer Dim j As Integer For i = 1 to Workbooks.Count For j = 1 to חוברות עבודה (i). גליונות עבודה.ספרו חוברות עבודה (i). גליונות עבודה (j) .הגן הבא j הבא i סוף משנה

האמור לעיל הוא לולאה מקוננת ל- Next מכיוון שהשתמשנו בלולאה אחת For Next בתוך אחרת.

הצהרות 'יציאה לפורום' עבור לולאות הבאות

הצהרת 'יציאה לפ' מאפשרת לך לצאת לגמרי מהלולאה 'For Next'.

אתה יכול להשתמש בו במקרים שבהם אתה רוצה שהלולאה For Next תסתיים כאשר מתקיים תנאי מסוים.

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

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

להלן הקוד שעושה זאת:

Sub HghlightNegative () Dim Rng כטווח הגדר Rng = Range ("A1", Range ("A1"). End (xlDown)) Counter = Rng.Count For i = 1 to Counter if WorksheetFunction.Min (Rng)> = 0 לאחר מכן צא עבור אם Rng (i) .Value <0 ואז Rng (i) .Font.Color = vbRed הבא i End Sub

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

לדוגמה, בקוד שלהלן, הצהרת 'יציאה לפ' תוציא אותך מהלולאה הפנימית, אך הלולאה החיצונית תמשיך לפעול.

תת SampleCode () עבור i = 1 עד 10 עבור j = 1 עד 10 יציאה עבור J הבא הבא i סוף Sub

עשה בזמן לולאה

לולאת 'Do While' מאפשרת לך לבדוק אם יש מצב ולהריץ את הלולאה בזמן שהתנאי הזה מתקיים (או שהוא TRUE).

ישנם שני סוגים של תחביר ב- Do While Loop.

בצע [בעוד מצב] [חסימת קוד לביצוע] לולאה

ו

האם [חסימת קוד לביצוע] לולאה [בעוד מצב]

ההבדל בין שני אלה הוא שבראשונה, תנאי ה- While נבדק תחילה לפני כל גוש קוד מבוצע, ובמקרה השני, בלוק הקוד מבוצע תחילה ולאחר מכן תנאי While נבדק.

המשמעות היא שאם התנאי While is False הוא שני המקרים, הקוד עדיין יפעל לפחות פעם אחת במקרה השני (שכן תנאי 'While' נבדק לאחר שהקוד בוצע פעם אחת).

כעת נראה מספר דוגמאות לשימוש בלולאות Do While ב- VBA.

דוגמה 1 - הוסף 10 שלמים חיוביים ראשונים באמצעות VBA

נניח שאתה רוצה להוסיף את עשרת המספרים השלמים החיוביים הראשונים באמצעות לולאת Do While ב- VBA.

לשם כך, תוכל להשתמש בלולאת Do While עד שהמספר הבא פחות או שווה ל- 10. ברגע שהמספר גדול מ 1o, הלולאה שלך תפסיק.

להלן קוד ה- VBA שיפעיל את לולאת Do While זו ותציג את התוצאה בתיבת הודעות.

Sub AddFirst10PositiveIntegers () Dim i As Integer i = 1 Do While i <= 10 Result = Result + i i = i + 1 Loop MsgBox Result End Sub Sub

הלולאה לעיל ממשיכה לפעול עד שהערך של 'i' הופך ל -11. ברגע שהוא הופך ל -11, הלולאה מסתיימת (כשהמצב While הופך לשקר).

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

דוגמה 2 - הזן תאריכים עבור החודש הנוכחי

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

אתה יכול לעשות זאת באמצעות קוד Do While לולאה הבא:

Sub EnterCurrentMonthDates () Dim CMDate As Date Dim i As Integer i = 0 CMDate = DateSerial (Year (Date), Month (Date), 1) Do While Month (CMDate) = Month (Date) Range ("A1"). (i, 0) = CMDate i = i + 1 CMDate = CMDate + 1 Loop End Sub

הקוד לעיל יזין את כל התאריכים בעמודה הראשונה של גליון העבודה (החל מ- A1). הלולאות נמשכות עד שערך החודש של המשתנה 'CMDate' תואם לזה של החודש הנוכחי.

הצהרת יציאה דו

אתה יכול להשתמש בהצהרת Exit Do כדי לצאת מהלולאה. ברגע שהקוד מבצע את השורה 'יציאה דו', הוא יוצא מלולאת Do While ומעביר את הפקד לשורה הבאה מיד אחרי הלולאה.

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

הקוד שלהלן יעשה זאת:

Sub EnterCurrentMonthDates () Dim CMDate As Date Dim i As Integer i = 0 CMDate = DateSerial (Year (Date), Month (Date), 1) Do While Month (CMDate) = Month (Date) Range ("A1"). (i, 0) = CMDate i = i + 1 אם i> = 10 ואז צא לעשות CMDate = CMDate + 1 Loop End Sub

בקוד לעיל, משפט IF משמש כדי לבדוק אם הערך של i גדול מ -10 או לא. ברגע שהערך של 'i' הופך ל -10, משפט Exit Do מבוצע והלולאה מסתיימת.

עשה עד לולאה

לולאות 'עשה עד' דומות מאוד ללולאות 'עשה בזמן'.

ב- 'Do While', הלולאה פועלת עד שהתנאי הנתון מתקיים, בעוד שב' Do Do 'הוא נולך עד שהתנאי שצוין מתקיים.

ישנם שני סוגים של תחביר ב- Do Through Loop.

בצע [עד תנאי] [בלוק קוד לביצוע] לולאה

ו

האם [חסימת קוד לביצוע] לולאה [עד תנאי]

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

המשמעות היא שאם התנאי עד הוא TRUE הוא שני המקרים, הקוד עדיין יפעל לפחות פעם אחת במקרה השני (שכן תנאי 'עד' נבדק לאחר שהקוד בוצע פעם אחת).

עכשיו בואו נראה כמה דוגמאות לשימוש בלולאות עשה עד ל- VBA.

הערה: כל הדוגמאות של Do Through זהות לזו של Do While. אלה שונו כדי להראות לך כיצד הלולאה 'עשה עד' פועלת.

דוגמא 1 - הוסף 10 שלמים חיוביים ראשונים באמצעות VBA

נניח שברצונך להוסיף את עשרת המספרים השלמים החיוביים הראשונים באמצעות לולאת עשה עד ב- VBA.

לשם כך, עליך להריץ את הלולאה עד שהמספר הבא פחות או שווה ל- 10. ברגע שהמספר גדול מ 1o, הלולאה שלך תפסיק.

להלן קוד ה- VBA שיפעיל את הלולאה הזו ויציג את התוצאה בתיבת הודעות.

תת AddFirst10PositiveIntegers () Dim i כמספר שלם i = 1 עשה עד i> 10 תוצאה = תוצאה + i i = i + 1 לולאה MsgBox תוצאות סוף תת

הלולאה לעיל ממשיכה לפעול עד שהערך של 'i' הופך ל -11. ברגע שהוא הופך ל -11, הלולאה מסתיימת (כשהמצב 'עד' הופך לנכון).

דוגמה 2 - הזן תאריכים עבור החודש הנוכחי

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

אתה יכול לעשות זאת באמצעות קוד Do לולאה הבא:

תת EnterCurrentMonthDates () Dim CMDate כתאריך תאריך Dim i As Integer i = 0 CMDate = DateSerial (שנה (תאריך), חודש (תאריך), 1) עשה עד חודש (CMDate) חודש (תאריך) טווח ("A1"). קיזוז ( i, 0) = CMDate i = i + 1 CMDate = CMDate + 1 Loop End Sub

הקוד לעיל יזין את כל התאריכים בעמודה הראשונה של גליון העבודה (החל מ- A1). הלולאה נמשכת עד שחודש משתנה CMDate אינו שווה לזה של החודש הנוכחי.

הצהרת יציאה דו

אתה יכול להשתמש בהצהרת 'יציאה דו' כדי לצאת מהלולאה.

ברגע שהקוד מבצע את השורה 'יציאה דו', הוא יוצא מלולאת עשה עד ומעביר את הפקד לשורה הבאה מיד אחרי הלולאה.

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

הקוד שלהלן יעשה זאת:

תת EnterCurrentMonthDates () Dim CMDate כתאריך תאריך Dim i As Integer i = 0 CMDate = DateSerial (שנה (תאריך), חודש (תאריך), 1) עשה עד חודש (CMDate) חודש (תאריך) טווח ("A1"). קיזוז ( i, 0) = CMDate i = i + 1 אם i> = 10 ואז צא לעשות CMDate = CMDate + Sub Loop End Sub

בקוד לעיל, ברגע שהערך של 'i' הופך ל -10, הצהרת יציאה דו מתבצעת והלולאה מסתיימת.

לכל אחד

ב- VBA, אתה יכול לדפדף בקבוצת אוספים באמצעות הלולאה 'לכל אחד'.

להלן מספר דוגמאות לאוספים ב- Excel VBA:

  • אוסף של כל חוברות העבודה הפתוחות.
  • אוסף של כל דפי העבודה בחוברת עבודה.
  • אוסף של כל התאים בטווח של תאים שנבחרו.
  • אוסף של כל התרשימים או הצורות בחוברת העבודה.

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

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

עם הלולאה 'לכל אחד' (המכונה גם הלולאה 'לכל אחד-הבא'), אינך צריך לדעת כמה אובייקטים יש באוסף.

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

להלן התחביר של הלולאה For Every-Next ב- Excel VBA.

עבור כל רכיב באוסף [Block Block to Execute] הבא [רכיב]

כעת בואו לראות כמה דוגמאות לשימוש ב- For Every Loop ב- Excel.

דוגמה 1 - עברו על כל גליונות העבודה בחוברת עבודה (והגנו עליה)

נניח שיש לך חוברת עבודה שבה ברצונך להגן על כל דפי העבודה.

להלן עבור כל לולאה הבאה יכול לעשות זאת בקלות:

Sub ProtectSheets () Dim ws as גליון עבודה עבור כל ws ב- ActiveWorkbook.Worksheets ws.Protect הבא ws End Sub

בקוד לעיל, הגדרנו משתנה 'ws' כאובייקט גליון עבודה. זה אומר ל- VBA כי יש לפרש את 'ws' כאובייקט גליון עבודה בקוד.

כעת אנו משתמשים במשפט 'לכל אחד' כדי לעבור על כל 'ws' (שהוא אובייקט גליון עבודה) באוסף כל גליונות העבודה בחוברת העבודה הפעילה (ניתן על ידי ActiveWorkbook.Worksheets).

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

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

דוגמה 2 - עברו על כל חוברות העבודה הפתוחות (ושמרו הכל)

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

להלן קוד VBA יכול לעשות זאת עבורנו:

תת שמור כל חוברות העבודה () עמום wb כחוברת עבודה עבור כל wb בחוברות עבודה wb. שמור wb סוף המשנה הבאה

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

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

דוגמה 3 - עברו על כל התאים בבחירה (הדגישו ערכים שליליים)

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

זה יכול להיות מועיל כאשר אתה רוצה לנתח כל תא ולבצע פעולה המבוססת עליו.

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

Sub HighlightNegativeCells () Dim Cll כטווח עבור כל Cll בבחירה If Cll.Value <0 Then Cll.Interior.Color = vbRed End If Next Cll End Sub Sub

(שים לב שהשתמשתי ב- Cll כשם משתנה קצר עבור Cell. רצוי לא להשתמש בשמות אובייקטים כגון גיליונות או טווח כשמות משתנים)

בקוד לעיל, הלולאה For Every-Next עוברת את אוסף התאים שבבחירה. משפט IF משמש לזיהוי אם ערך התא שלילי או לא. במקרה שכן, התא מקבל צבע פנים אדום, אחרת הוא עובר לתא הבא.

במקרה שאין לך בחירה, ובמקום זאת תרצה ש- VBA תבחר את כל התאים המלאים בעמודה, החל מתא ספציפי (בדיוק כמו שאנו משתמשים במקשי Control + Shift + מקש חץ למטה כדי לבחור את כל התאים המלאים), תוכל השתמש בקוד שלהלן:

Sub HighlightNegativeCells () Dim Cll כטווח Dim Rng כטווח Set Rng = Range ("A1", Range ("A1"). End (xlDown)) for each Cll In Rng If Cll.Value <0 Then Cll.Interior.Color = vbRed End If Next Cll End Sub

בדוגמה שלעיל, לא משנה כמה תאים מלאים יש. הוא יתחיל מתא A1 וינתח את כל התאים המלאים הרציפים בעמודה.

אתה גם לא צריך לבחור תא A1. אתה יכול לבחור כל תא רחוק וכאשר הקוד יפעל, הוא עדיין ישקול את כל התאים בעמודה A (החל מ- A1) ויצבע את התאים השליליים.

הצהרת 'יציאה לשם'

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

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

להלן קוד VBA שיעשה זאת:

Sub HighlightNegativeCells () עמום Cll כטווח עבור כל Cll בבחירה If SheetFunction.Min (Selection)> = 0 לאחר מכן צא עבור If Cll.Value <0 ואז Cll.Interior.Color = vbRed סוף אם הבא Cll סוף Sub

היכן לשים את קוד ה- VBA

תוהה לאן קוד VBA הולך בחוברת העבודה שלך ב- Excel?

ל- Excel יש תומך תומך ב- VBA שנקרא עורך VBA. עליך להעתיק ולהדביק את הקוד בחלון קוד המודול של עורך VB.

להלן השלבים לביצוע פעולה זו:

  1. עבור לכרטיסייה מפתחים.
  2. לחץ על האפשרות Visual Basic. פעולה זו תפתח את עורך ה- VB בקצה האחורי.
  3. בחלונית סייר הפרויקט בעורך VB, לחץ באמצעות לחצן העכבר הימני על כל אובייקט עבור חוברת העבודה שבה ברצונך להכניס את הקוד. אם אינך רואה את סייר הפרוייקטים עבור לכרטיסייה תצוגה ולחץ על סייר הפרוייקטים.
  4. עבור אל הוספה ולחץ על מודול. זה יכניס אובייקט מודול לחוברת העבודה שלך.
  5. העתק והדבק את הקוד בחלון המודול.

תוכל לעזור בפיתוח האתר, שיתוף הדף עם החברים שלך

wave wave wave wave wave