ในแผ่นงาน Excel วิธีการแปลงรูปแบบวันที่ของเซลล์เป็นรูปแบบทั่วไปเมื่อค่าของมันเปลี่ยนจากวันที่เป็นข้อความ


3

ฉันพบสิ่งนี้แปลกมากใน excel sheet (หรืออาจเป็นเพียงฉัน) โดยค่าเริ่มต้นเซลล์ทั้งหมดใน excel sheet อยู่ในรูปแบบทั่วไป (G) และเมื่อฉันป้อนค่าวันที่ (1/1/2012) ในเซลล์ รูปแบบได้รับการเปลี่ยนเป็นวันที่ (D4) ซึ่งสมบูรณ์แบบ แต่เมื่อฉันเปลี่ยนกลับเป็นค่าข้อความบางส่วน (เช่นรถไฟ) รูปแบบไม่เปลี่ยนเป็นรูปแบบทั่วไป (หรือรูปแบบข้อความ) รูปแบบดังกล่าวจะยังคงเป็นรูปแบบวันที่ (D4)

ฉันควรเปิดใช้งานการตั้งค่าใด ๆ ใน Excel เพื่อเปลี่ยนรูปแบบจากวันที่เป็นทั่วไปเมื่อค่าของเซลล์เปลี่ยนจากวันที่เป็นข้อความ

ความช่วยเหลือใด ๆ จะได้รับการชื่นชมอย่างมาก

คำตอบ:



1

คุณเคยพิจารณาเรื่องนี้ แทน ?

เปลี่ยน NumberFormat บน ป้อน เซลล์เป็น NumberFormat "ทั่วไป" ทุกครั้ง

(คุณจะต้องป้อนเซลล์ในโหมดแก้ไขเพื่อเปลี่ยนจากวันที่เป็นข้อความอยู่แล้วดังนั้นจึงไม่แตกต่างกันอย่างมีนัยสำคัญ)

แทนที่จะตรวจสอบรูปแบบเมื่อคุณอยู่ การออกจาก เซลล์

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    ActiveCell.NumberFormat = "General"
End Sub

แน่นอนว่าสิ่งนี้สามารถสร้างปัญหาอื่น ๆ กับเซลล์อื่น ๆ ที่คุณไม่ต้องการเป็น "ทั่วไป" แต่คุณสามารถยกเว้นช่วงได้โดยง่ายโดยการทดสอบ

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If ActiveCell.Column <> 4 Then
      ActiveCell.NumberFormat = "General"
    End If
End Sub

เมื่อคุณป้อนวันที่ใน ActiveCell Excel จะยังคงแปลงเป็นรูปแบบวันที่เมื่อคุณออก แต่เนื่องจากเป็นรูปแบบ "ทั่วไป" ที่เริ่มต้นด้วยหมายเลขซีเรียลจะไม่แปลงเป็นวันที่ คุณมีตอนนี้

ข้อเสียที่ใหญ่ที่สุดคือการเลือกวันที่ที่มีอยู่จะแปลงเป็น "ทั่วไป" แต่ในขณะที่อยู่ในเซลล์คุณสามารถคลิกขวาและจัดรูปแบบเป็นวันที่ได้เสมอ

หากคุณยังต้องการสำรวจการจัดรูปแบบเซลล์ในขณะที่คุณออกไปคุณสามารถลองได้เช่นกัน

เก็บ ActiveCell ปัจจุบันเป็นตัวแปรสาธารณะในโมดูลเพื่อให้เมื่อคุณออกไปคุณสามารถใช้เพื่อตรวจสอบว่าเป็นรูปแบบวันที่

ฟังก์ชันเซลล์อาจเป็นวิธีที่ง่ายที่สุดในการทดสอบรูปแบบวันที่

aCell = Application.Evaluate("=CELL(""format""," & previousCell & ")")
If Left(aCell, 1) <> "D" Then previouseCell.NumberFormat = "General"

0

คุณยังสามารถใช้ฟังก์ชันแผ่นงานนี้:

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not IsNumeric(Target.Value) And Not IsDate(Target.Value) Then
    Target.NumberFormat = "General"
  End If
End Sub

หากค่าเป็นสตริงรูปแบบทั่วไปจะถูกตั้งค่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.