הצהרת מקרה בחר ב- Excel VBA - מוסבר עם דוגמאות

ל- Excel VBA יש מבנה IF Then Else שניתן להשתמש בו כדי לנתח מספר תנאים ולבצע קודים המבוססים על תנאים אלה.

מבנה דומה נוסף המאפשר לך לבדוק אם יש מספר תנאים הוא בחר מקרה הַצהָרָה.

Select Case שימושי כאשר יש לך שלושה תנאים או יותר שברצונך לבדוק. אתה יכול גם להשתמש בזה בשני תנאים (אבל אני מרגיש שאם אז קל יותר להשתמש במקרים אלה).

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

הערה: כל הקודים לדוגמא המכוסים במדריך זה אמורים להיות ממוקמים במודול ב- VBA.

בחר תחביר מקרה

להלן התחביר של Select Case ב- Excel VBA:

בחר Case Test_Expression Case Value_1 Block Code כאשר Test_Expression = Value_1 Block Case Case_2 חסום קוד Test_Expression = Value_2 Case Value_3 Code כאשר Test_Expression = Value_3 Block Block Code אחר כאשר אף אחד מתנאי המקרה לא מתקיים.
  • Test_Expression: זהו הביטוי שאת ערכו אנו מנתחים באמצעות מקרים שונים (מוסבר טוב יותר עם הדוגמאות להלן).
  • Condition_1, Condition_2,…: אלה התנאים שבהם נבדק ביטוי הטקסט. אם הוא עומד בתנאי, בלוק הקוד לתנאי הנתון מבוצע.

עבור כל הצהרת Select Case שבה אתה משתמש, עליך להשתמש בהצהרת Select End.

הערה: ברגע שהתנאי מתקיים, VBA יוצא ממבנה המקרים הנבחר. אז אם יש לך חמישה תנאים והתנאי השני מתקיים, VBA תצא מ- Select Case - ושאר התנאים לא ייבדקו.

בחר דוגמאות מקרה

עכשיו כדי להבין טוב יותר כיצד להשתמש בהצהרת Select Case ב- VBA, נעבור על כמה דוגמאות.

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

נתחיל בדוגמא פשוטה לראות כיצד Select Case מאפשר לנו לבדוק את התנאים.

דוגמה 1 - בדוק את המספרים

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

Sub CheckNumber () Dim UserInput As Integer UserInput = InputBox ("אנא הזן מספר בין 1 ל -5") בחר Case UserInput Case 1 MsgBox "הזנת 1" Case 2 MsgBox "הזנת 2" מקרה 3 MsgBox "הזנת 3" מקרה 4 MsgBox "הזנת 4" מקרה 5 MsgBox "הזנת 5" סוף בחר סיום תת

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

דוגמה 2 - שימוש במארז בחר עם מצב IS

אתה יכול להשתמש בתנאי IS עם מבנה Select Case כדי לבדוק את ערך המספרים.

הקוד שלהלן בודק אם מספר הקלט גדול מ -100 או לא.

Sub CheckNumber () עמום UserInput כמספר שלם UserInput = InputBox ("אנא הזן מספר") בחר Case UserInput Case Is = 100 MsgBox "הזנת מספר גדול מ (או שווה) 100" סוף בחר סיום תת

דוגמה 3 - שימוש באותיות אחרות כדי לתפוס הכל

בדוגמה שלעיל השתמשתי בשני תנאים (פחות מ -100 או יותר מ -100.

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

מקרה אחר פועל כמכלול וכל מה שלא נכנס לאף אחד מהמקרים הקודמים מטופל על ידי מקרה אחר.

להלן קוד דוגמה שבו השתמשתי ב- Case Else:

Sub CheckNumber () עמום UserInput כמספר שלם UserInput = InputBox ("אנא הזן מספר") בחר Case UserInput Case הוא <100 MsgBox "הזנת מספר פחות מ 100" מקרה אחר MsgBox "הזנת מספר גדול מ (או שווה ל-) ) 100 "סוף בחר סיום תת

דוגמא 4 - שימוש בטווח מספרים

ב- Select Case, תוכל גם לבדוק טווח מספרים.

הקוד להלן מבקש קלט ומציג תיבת הודעות המבוססת על הערך.

Sub CheckNumber () עמום UserInput כמספר שלם UserInput = InputBox ("אנא הזן מספר בין 1 ל- 100") בחר Case UserInput Case 1 עד 25 MsgBox "הזנת מספר פחות מ -25" מקרה 26 עד 50 מסבוק "הזנת מספר בין 26 ל -50 "מקרה 51 עד 75 MsgBox" הזנת מספר בין 51 ל- 75 "מקרה 75 עד 100 MsgBox" הזנת מספר יותר מ- 75 "סיום בחר סיום תת

דוגמה 5 - קבל את הציון על סמך ציוני הציונים

עד כה ראינו דוגמאות בסיסיות (שאינן שימושיות באמת בעולם המעשי).

להלן דוגמה קרובה יותר לדוגמא בעולם האמיתי שבה ניתן להשתמש ב- Select Case ב- Excel VBA.

הקוד הבא ייתן לך את הציון שהתלמיד מקבל על סמך הציונים בבחינה.

תת כיתה () Dim StudentMarks כמספר שלם Dim FinalGrade As String StudentMarks = InputBox ("Enter Marks") בחר Case StudentMarks מקרה <33 FinalGrade = "F" מקרה 33 עד 50 FinalGrade = "E" מקרה 51 עד 60 FinalGrade = "D "מקרה 60 עד 70 FinalGrade =" C "מקרה 70 עד 90 FinalGrade =" B "מקרה 90 עד 100 FinalGrade =" A "סוף בחר MsgBox" הציון הוא "& FinalGrade End Sub

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

בקוד לעיל ציינתי את כל התנאים - לסימנים 0 - 100.

דרך נוספת להשתמש ב- Select Case היא להשתמש במקרה אחר בסוף. זה שימושי כאשר אתה אחראי לכל התנאים ולאחר מכן ציין מה עליך לעשות כאשר אף אחד מהתנאים אינו מתקיים.

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

Sub CheckOddEven () Dim StudentMarks כמספר שלם Dim FinalGrade As String StudentMarks = InputBox ("Enter Marks") בחר Case StudentMarks מקרה הוא <33 FinalGrade = "F" מקרה 33 עד 50 FinalGrade = "E" מקרה 51 עד 60 FinalGrade = "D "מקרה 60 עד 70 FinalGrade =" C "מקרה 70 עד 90 FinalGrade =" B "מקרה אחר FinalGrade =" A "סוף בחר MsgBox" הציון הוא "& FinalGrade End Sub

דוגמא 6 - יצירת פונקציה מותאמת אישית (UDF) באמצעות Select Case

בדוגמה לעיל, הקוד ביקש מהמשתמש את קלט הסימנים.

ניתן גם ליצור פונקציה מותאמת אישית (User Defined Function) שניתן להשתמש בה בדיוק כמו כל פונקציה רגילה של דף עבודה, ואשר תחזיר את הציון של התלמידים.

להלן הקוד שיצור את הנוסחה המותאמת אישית:

פונקציה GetGrade (StudentMarks כשלם) Dim FinalGrade כמחרוזת מקרה מקרה StudentMarks הוא <33 FinalGrade = "F" מקרה 33 עד 50 FinalGrade = "E" מקרה 51 עד 60 FinalGrade = "D" מקרה 60 עד 70 FinalGrade = "C" מקרה 70 עד 90 FinalGrade = "B" מקרה אחר FinalGrade = "A" סוף בחר GetGrade = פונקציית סיום FinalGrade

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

דוגמה 7 - בדוק ODD / EVEN עם Select Case

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

Sub CheckOddEven () CheckValue = טווח ("A1"). ערך בחירת מקרה (CheckValue Mod 2) = 0 מקרה נכון MsgBox "המספר הוא אפילו" מקרה שגוי MsgBox "המספר מוזר" סוף בחר סוף קצה משנה

דוגמה 8 - בדיקת ימי חול/סוף שבוע (תנאים מרובים)

תוכל גם להשתמש באפשרות Select Case כדי לבדוק אם יש ערכים מרובים באותו מקרה.

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

Sub CheckWeekday () בחר מקרה שבועי (עכשיו) מקרה 1, 7 MsgBox "היום הוא סוף שבוע" מקרה אחר MsgBox "היום הוא יום חול" סוף בחר סיום תת

בקוד לעיל, אנו בודקים שני תנאים (1 ו -7) באותו מקרה.

הערה: הפונקציה יום חול מחזירה 1 ליום ראשון ו- 7 ליום שבת.

דוגמא 9 - הצהרות מקרה מקומיות

תוכל גם לקנן הצהרת Select Case אחת בתוך אחר.

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

Sub CheckWeekday () בחר מקרה שבועי (עכשיו) מקרה 1, 7 בחר מקרה שבועי (עכשיו) מקרה 1 MsgBox "היום יום ראשון" מקרה אחר MsgBox "היום שבת" סוף בחר מקרה אחר MsgBox "היום הוא יום חול" סוף בחר סוף תַת

בקוד לעיל, קיניתי את Case Select כדי לבדוק אם סוף השבוע הוא שבת או יום ראשון.

הערה: הדוגמה המוצגת למעלה היא להסביר את הרעיון. זו לא הדרך הטובה או המעשית ביותר לברר את יום חול/סוף שבוע.

דוגמה 10 - בדיקת מחרוזת טקסט באמצעות רישיות נבחרות

אתה יכול לבדוק מחרוזות ספציפיות באמצעות Select Case ולאחר מכן לבצע קוד המבוסס על זה.

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

Sub OnboardConnect () מחלקת Dim כמחלקת מחרוזת = InputBox ("הזן את שם המחלקה שלך") בחר Case Case Case "שיווק" MsgBox "אנא צור קשר עם בוב ריינס לעליית" Case "Finance" MsgBox "אנא צור קשר עם פטרישיה קרוז עבור Onboarding" מקרה "HR" MsgBox "אנא התחבר עם אוליבר רנד לעלייה ל"קייס" מנהל "MsgBox" אנא צור קשר עם הלן הום לעלייה "מקרה אחר MsgBox" אנא צור קשר עם טוני רנדל לעלייה "End Select End Sub Sub

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

אולי תאהב גם את מדריכי ה- VBA הבאים:

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

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

wave wave wave wave wave