VBA DateValue | วิธีใช้ฟังก์ชัน DateValue ใน Excel VBA

ฟังก์ชัน VBA DateValue คืออะไร?

ฟังก์ชัน DateValue เป็นฟังก์ชันที่สร้างขึ้นใน Excel VBA ภายใต้หมวดหมู่ของฟังก์ชันวันที่ / เวลา ทำงานเป็นทั้งฟังก์ชัน VBA และฟังก์ชันแผ่นงานใน vba ฟังก์ชันนี้จะส่งคืนหมายเลขซีเรียลหรือค่าของ Date ที่ระบุในรูปแบบการแสดงสตริงโดยไม่สนใจข้อมูลของเวลาที่จัดทำโดยสตริง Date ใช้ในสองวิธีที่แตกต่างกันใน Excel ฟังก์ชันนี้ใช้เป็นสูตรของเวิร์กชีตที่ป้อนในเซลล์แผ่นงาน ใช้เป็นรหัสแมโครในแอปพลิเคชัน VBA ที่ป้อนผ่าน Visual Basic Editor ที่เกี่ยวข้องกับ Microsoft Excel

ในบทความนี้เราจะเรียนรู้ตัวอย่าง VBA DATEVALUE และวิธีการใช้งานพร้อมคำอธิบายที่ชัดเจน

คำอธิบายของฟังก์ชัน VBA Datevalue

ใน VBA DATEVALUE ใช้ไวยากรณ์ต่อไปนี้

ฟังก์ชันนี้ใช้อาร์กิวเมนต์หรือพารามิเตอร์เดียวเท่านั้น

  • วันที่ : เป็นวันที่แสดงในรูปแบบสตริง
  • ผลตอบแทน:ฟังก์ชันนี้จะส่งคืนค่าของวันที่เมื่อใช้เป็นฟังก์ชัน VBA ส่งคืนค่าวันที่เมื่อใช้เป็นฟังก์ชันแผ่นงาน

ฟังก์ชัน VBA DateValue สามารถตีความข้อมูลที่แสดงในรูปแบบข้อความที่กล่าวถึงในรูปแบบ Excel ที่ถูกต้อง ไม่สามารถส่งคืนค่าวันที่ได้หากสตริงมีการแสดงข้อความของวันธรรมดา

ประโยชน์ของฟังก์ชัน VBA DateValue คือการดึงค่าวันที่จากสตริงและการแปลงวันที่ด้วยเวลาเป็นวันที่เท่านั้น เราสามารถทำได้ง่ายๆว่าเมื่อกำหนดวันที่พร้อมเวลาฟังก์ชันนี้จะมีเพียงค่าวันที่หลีกเลี่ยงค่าเวลา

วิธีใช้ Excel VBA DATEVALUE

ในการใช้ฟังก์ชัน DateValue ใน Excel ก่อนอื่นต้องเปิดตัวแก้ไข VBA

ต้องวางปุ่มคำสั่งในแผ่นงาน Excel เพื่อเพิ่มบรรทัดของโปรแกรม VBA ลงไป ในการใช้บรรทัดของโปรแกรมผู้ใช้ต้องคลิกที่ปุ่มคำสั่งในแผ่นงาน excel เพื่อให้ได้ผลลัพธ์ที่ถูกต้องจากโปรแกรมอินพุตที่ถูกต้องจะได้รับผ่านอาร์กิวเมนต์ ตัวอย่างเช่นรหัสต่อไปนี้ช่วยในการสร้างแมโครเพื่อเรียกใช้ฟังก์ชัน DateValue เพื่อแยกค่าวันที่ออกจากข้อความใน VBA

โปรแกรม VBA: 

 Sub Datebutton () Dim myDate As Date myDate = DateValue (“ 15 สิงหาคม 1991”) MsgBox Date (myDate) End Sub 

รหัสนี้ให้ผลลัพธ์เป็นวันที่ 15 จากอินพุตที่ระบุ

ตัวอย่างของ Excel VBA DATEVALUE

ด้านล่างนี้คือตัวอย่างของ DateValue ใน Excel VBA

คุณสามารถดาวน์โหลดเทมเพลต Excel VBA DateValue ได้ที่นี่ - เทมเพลต Excel VBA DateValue

ตัวอย่าง # 1 - รับวันเดือนและปีจากวันที่

ทำตามขั้นตอนไม่กี่ขั้นตอนเพื่อสร้างและรันโปรแกรมใน VBA ซึ่ง ได้แก่

ขั้นตอนที่ 1:ไปที่แท็บนักพัฒนาวางเคอร์เซอร์บนเซลล์ในแผ่นงาน Excel แล้วคลิกที่ตัวเลือก 'แทรก' และเลือก 'ปุ่มคำสั่ง' ภายใต้การควบคุม ActiveX ดังแสดงในรูป

ลากปุ่มที่คุณต้องการและให้คำบรรยายเป็นปุ่มวันที่จากหน้าต่างคุณสมบัติ

ขั้นตอนที่ 2:ดับเบิลคลิกที่ปุ่มมันจะเปลี่ยนเส้นทางไปยังโครงการ VBA และเขียนโค้ดระหว่างปุ่มคำสั่งย่อยส่วนตัวและสิ้นสุดย่อย

ควรพัฒนาโค้ดดังต่อไปนี้เพื่อรับวันเดือนปี

รหัส:

 Private Sub Datebutton1_Click () Dim Exampledate As Date Exampledate = DateValue ("19 เมษายน 2019") MsgBox วันที่ MsgBox Year (Exampledate) MsgBox Month (Exampledate) End Sub 

ในรหัสนี้ Datebutton1_Click () เป็นชื่อและตัวอย่างเป็นตัวแปรที่มีชนิดข้อมูลวันที่และ Msgbox เพื่อแสดงผลลัพธ์

ขั้นตอนที่ 3:ในขณะพัฒนาโค้ดข้อผิดพลาดที่ไม่ตรงกันของประเภท vba จะเกิดขึ้นและจำเป็นต้องดูแล

ขั้นตอนที่ 4:ในขั้นตอนนี้ให้เรียกใช้โปรแกรมโดยคลิกที่ตัวเลือกเรียกใช้

หรือเราสามารถตรวจสอบหรือดีบักโปรแกรมทีละขั้นตอนโดยเลือกตัวเลือก Step Into ภายใต้เมนู Debug หากรหัสของเราไม่มีข้อผิดพลาดใด ๆ ก็จะแสดงผลลัพธ์

ขั้นตอนที่ 5 : เมื่อโปรแกรมทำงานโปรแกรมจะแสดงกล่องข้อความพร้อมวันที่ที่ระบุไว้ในการป้อนข้อความก่อน จากนั้นคลิกที่ตกลงเพื่อดูค่าปีอีกครั้งคลิกตกลงบนกล่องข้อความเพื่อดูค่าเดือน

หมายเหตุ:ต้องปฏิบัติตามขั้นตอนเหล่านี้อย่างชัดเจนเพื่อให้ได้ผลลัพธ์ที่ถูกต้อง

ตัวอย่าง # 2 - การใช้ DatePart เพื่อรับส่วนต่างๆของวันที่

ขั้นตอนที่ 1:ไปที่แท็บนักพัฒนา Excel วางเคอร์เซอร์บนเซลล์ในแผ่นงาน Excel แล้วคลิกที่ตัวเลือก 'แทรก' และเลือก 'ปุ่มคำสั่ง' ภายใต้การควบคุม ActiveX ดังแสดงในรูป

ขั้นตอนที่ 2:ลากปุ่มและให้คำอธิบายภาพเป็น DatePart ภายใต้คุณสมบัติ

ดับเบิลคลิกที่ปุ่มนี้จะนำไปที่แผ่นงาน Visual Basic Editor และแสดงดังต่อไปนี้

ขั้นตอนที่ 3:พัฒนาโค้ดโดยใช้ DatePart ด้วย DateValue ดังแสดงในรูป

รหัส:

 Private Sub Datepart1_Click() Dim partdate As Variant partdate = DateValue("8/15/1991") MsgBox partdate MsgBox Datepart("yyyy", partdate) MsgBox Datepart("dd", partdate) MsgBox Datepart("mm", partdate) MsgBox Datepart("q", partdate) End Sub 

In this program, DatePart1 is the macro name and partDate is argument name with data type ‘variant’. For displaying year, date, month, and a quarter, the format is applied as “yyyy”, “d”, “m”, and “q”. If we do any mistake in the format it displays the following error.

Step 4: After successful debugging of program, run the program by clicking on the run button use excel shortcut key F5.

The code first displays the full date then after clicking every OK from the msgbox, it shows the year value after that Date value, Month Value, Quater Value respectively.

Things to Remember About the VBA DATEVALUE

The following things must be remembered while using the DateValue function in Excel VBA

  • Run time error 13 with message Type Mismatch is displayed when the date provided to the DateValue function is not able to convert into a valid date. We need date is proper text format
  • When we try to get the only date from the string argument with code ‘msgbox date (argument name)’, it displays the type mismatch error.
  • We can see the output of the DateValue function without opening the VBA editor. It is done by clicking the command button and select the macro created for the respective program
  • When DatePart is used to get the values, the appropriate format should be followed. Otherwise, it leads ‘run time error 5’ with message invalid procedure call or argument.