מחרוזת VBA עד היום | המרת ערכי מחרוזת לתאריך ב- Excel VBA

מחרוזת VBA של Excel עד היום

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

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

כיצד להמיר ערכי מחרוזת לתאריך?

אתה יכול להוריד תבנית Excel מחרוזת VBA לתאריך כאן - VBA מחרוזת לתאריך Excel Excel

דוגמה מס '1

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

קוד:

 String_To_Date () Dim k as String k = "10-21" MsgBox k End Sub 

במשתנה הקוד הנ"ל "k" המוגדר כסוג נתונים "מחרוזת" ולמשתנה זה הקצנו את הערך כ- "10-21".

אוקי, בואו נפעיל את הקוד ונראה מה נקבל בתיבת ההודעות ב- VBA.

קיבלנו את הערך כ- 10-21 בלבד, אך בדרך כלל, ערכים אלה הם תאריך ולא ערכי מחרוזות. כך שלמרות שסוג הנתונים שהוקצה הוא "מחרוזת" אנו עדיין יכולים להמיר לתאריך באמצעות פונקציית המרת סוג הנתונים CDATE VBA.

קוד:

 String_To_Date () Dim k As String k = "10-21" MsgBox CDate (k) Sub Sub 

באמור לעיל, לפני שנציג את תוצאת המשתנה "k" בתיבת ההודעות, הקצנו את הפונקציה CDATE. מתבצעת התאמה קטנה, בואו נראה עד כמה היא משפיעה.

כעת נראה את התוצאה כ"תאריך "כבר לא כערך" מחרוזת ".

דוגמה מס '2

כעת, בדוק את הקוד שלמטה לדוגמא.

קוד:

 Sub String_To_Date () Dim k As String k = 43599 MsgBox k End Sub 

בנקודת זמן זו מעל הקוד יראה את התוצאה כ- "43599" כפי שהקצנו לעיל.

אך ברגע שנשתמש בפונקציה CDATE היא תומר לערך תאריך.

קוד:

 Sub String_To_Date () Dim k As String k = 43599 MsgBox CDate (k) Sub Sub 

התוצאה לאחר החלת פונקציית CDATE היא כדלקמן.

מכיוון שאקסל אחסנה את התאריך כמספרים סידוריים המספר הסידורי שהוקצה לנו 43599 שווה לתאריך 14/05/2019 כאשר מוחל פורמט התאריך.

אנו יכולים גם להחיל את הפורמט על התאריך כ- "DD-MMM-YYYY" כדי לקרוא את התאריך בצורה מדויקת.

קוד:

 Sub String_To_Date1 () Dim k As String Dim DateValue as Date k = 43599 DateValue = CDate (k) MsgBox Format (DateValue, "DD-MMM-YYYY") Sub Sub 

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

לאחר מכן השתמשתי בפונקציית FORMAT כדי להחיל את הפורמט של הפורמט "DD-MMM-YYYY" והתוצאה תהיה כפי שמוצג להלן.

בעזרת זה, אנו יכולים לקרוא בבירור את חלק היום והחודש. זה תלוי גם בתבנית תאריך המערכת שלך ב- Excel, מכיוון שתבנית תאריך המערכת שלי הייתה "MM-DD-YYYY" זה נראה ככה אבל זה לא אמור להוות מכשול לפורמט.

דוגמה מס '3

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

בעמודה A מ- A2 ל- A12 יש לנו ערכי מראה תאריך, אך כאשר אנו מסתכלים על כרטיסיית הפורמט היא מציגה פורמט "טקסט". כעת עלינו להמיר ערכים אלה מטקסט לתאריך.

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

קוד:

 Sub String_To_Date2 () עמום k כל עוד הנתונים נמצאים ביותר מתא אחד, אז צריך לעבור דרך כל תא 'פתח לולאה עבור k = 2 עד 12' הנתונים מתחילים משורה 2 ומסתיימים בשורה 12, אז 2 עד 12 תאים (k, 2). ערך = CDate (תאים (k, 1). ערך) הבא k סוף משנה 

אם תריץ את הקוד זה ייתן לנו את התוצאה שלהלן.

דברים שיש לזכור

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