อาการ
เมื่อคุณทำการเปลี่ยนแปลงโดยทางโปรแกรมไปยังค่าในเซลล์ในเวิร์กชีต Microsoft Excel ค่ามิลลิวินาทีที่คุณระบุจะถูกปัดเศษเป็นที่สองที่ใกล้ที่สุด ปัญหานี้เกิดขึ้นเมื่อเงื่อนไขต่อไปนี้เป็นจริง:
-
การเปลี่ยนแปลงที่คุณทำจะกำหนดรูปแบบวันที่ VBA หรือรูปแบบวันที่ตัวแปรไปยังเซลล์
-
คุณทำการเปลี่ยนแปลงโดยทางโปรแกรมโดยใช้แมโคร Visual Basic for แอปพลิเคชันหรือโดยการใช้ไคลเอ็นต์การทำงานอัตโนมัติภายนอก
ปัญหานี้เกิดขึ้นเมื่อมีการเปลี่ยนแปลงที่คุณทำกำหนดรูปแบบวันที่หรือรูปแบบเวลาไปยังเซลล์
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากการจัดรูปแบบภายในของ Excel เป็นสตริงข้อความตามรูปแบบวันที่และเวลาที่ระบุไว้บนแท็บ ตัวเลือกภูมิภาค ของรายการ ตัวเลือกภูมิภาคและภาษา ในแผงควบคุม ค่านี้จะถูกปัดเศษเป็นค่าที่สองที่ใกล้ที่สุด Excel จะกำหนดค่านี้ให้กับเซลล์แล้วคำนวณค่าใหม่เพื่อสร้างค่าวันที่ใหม่สำหรับเซลล์
วิธีแก้ไขปัญหาชั่วคราว
ใช้วิธีการใดวิธีการหนึ่งต่อไปนี้เพื่อแก้ไขปัญหานี้
วิธีที่ 1
คุณสามารถแปลงค่าวันที่เป็นรูปแบบสตริงที่มีเศษส่วนของตัวที่สองได้ ค่าสตริงนี้สามารถกำหนดให้และคำนวณเป็นรูปแบบวันที่ที่ยังคงมิลลิวินาที
วิธีที่ 2
คุณสามารถใช้คุณสมบัติ Value2 ของวัตถุช่วงเพื่อรักษามิลลิวินาที ตัวอย่างเช่นคุณสามารถใช้โค้ด VBA ต่อไปนี้
Sub CopyValueUsingVBDate() Dim d As Date d = ActiveSheet.Range("A1").Value ActiveSheet.Range("B1").Value2 = dEnd Sub
สำหรับข้อมูลเพิ่มเติมให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๑๘๒๘๑๒ คำอธิบายของคุณสมบัติ Value2 สำหรับวัตถุช่วง