SELECT  ב- Excel
SELECT ב- Excel
SELECT ב- Excel

ברוכים הבאים לשיעור ה-11 בקורס ה-VBA מאקרו ב- Excel.

קודם כל ברכותי!

אם התמדתם עד כאן, מגיע לכם כל הכבוד עצום!

הגעתם כבר לרמה יפה,

ואני מקווה שאתם משלבים את מה שלמדתם

עם מאקרויים שאתם מקליטים בעבודה

ובבית לצרכים האישיים שלכם

ורואים ברכה בעמלכם!

השיעור הפעם מתעסק בנושא

שלמעשה דומה מאוד ל-IF שלמדנו בעבר

תנאי למצבים של אפשרויות רבות - Select Case

במקרה שבו יש לנו יותר מ-2/3 אפשרויות

בתוך תנאי

זה מתחיל להיות מאוד טרחני ומייגע

לכתוב את זה בתוך תנאי IF.

דוגמא בפועל - IF לעומת SELECT CASE

אני בכוונה אדגים על דוגמא מאוד פשוטה

וכל אחד יקח את זה למקום שלו

נניח שאנחנו רצים על רשימת טלפונים קווים של לקוחות

ורוצים לרשום לצד כל אחד מהם

באיזה איזור בארץ הוא מתגורר.

באמצעות IF היינו עושים זאת כך :

if str = "03" then
...

elseif str="04" then

....

elseif str="08" then

...

וכו’ וכו'

אבל לעומת זאת, ב- Select case זה יראה כך :

select case str

case "03"

....

case "04"

...

case "08"

וכן הלאה

מתי משתמשים ב-IF ומתי ב-SELECT CASE

ובכן, אין תשובת “בית ספר”

כשאתם יוצרים מאקרו

אחד השיקולים החשובים

הוא שיהיה קל לתחזק אותו בעתיד

ואם הוא יהיה כתוב בצורה ברורה

אז - יהיה קל לתחזק אותו.

ולכן בכל מקרה שבו יש יותר מ-2 או 3 אפשרויות

כדאי, אם ניתן , להשתמש ב-SELECT CASE ולא ב-IF.

שימוש ב- Select Case עם תנאי של “זה או זה " (OR)

במקרים בהם, אנחנו רוצים שאותן פקודות

יבוצעו עבור כמה ערכים

אפשר  לכתוב זאת כך

select case CustomerAge

Case 20,30

הקוד שלך כאן....

case 40,50

הקוד שלך כאן

End Select
 

שימוש ב- Select case עם טווחים

לפעמים, אנחנו צריכים להגדיר טווח מסוים

ולא רק ערך ספציפי

יש אפשרות גם לכתוב טווחים, ואפילו טווחים של תאריכים

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

להלן דוגמא של חישוב לפי סוגי הפנסיות השונות

בשוק הישראלי  :

Select Case JoinDate
        Case CDate("1905-01-01") To CDate("1989-12-31")
           הקוד שלך כאן
        Case CDate("1990-01-01") To CDate("1991-12-31")
             הקוד שלך כאן
        Case CDate("1992-01-01") To CDate("2001-06-30")
              הקוד שלך כאן
        Case CDate("2001-07-01") To CDate("2003-12-31")
             הקוד שלך כאן
        Case CDate("2004-01-01") To CDate("2012-12-31")
             הקוד שלך כאן
        Case Else
             הקוד שלך כאן
    End Select

 

בהצלחה!