ต่อไปนี้เป็นวิธีแก้ปัญหา VBA ที่จะกำหนดรูปแบบสำหรับวันที่ทั้งหมดให้เป็นภาษาใดภาษาหนึ่งโดยเฉพาะ มันถูกเขียนเป็นเพียงแค่จัดรูปแบบวันที่ แต่คุณสามารถเปลี่ยนได้ ขึ้นอยู่กับตัวเลือกในกล่องโต้ตอบ "Format Cells" ฉันเชื่อว่ามีผลกับวันที่เวลาและรูปแบบพิเศษเท่านั้น คุณจะต้อง รายการ ID ภาษา เพื่อตั้ง LCID
ตามมูลค่าที่คุณต้องการ (ต้องแน่ใจว่าใช้ LCID Hex ไม่ใช่ LCID Dec)
Sub SetLanguageFormat()
'Declarations
Dim cell As Range
Dim f As String
Const LCID As String = "[$-0409]"
Dim reg 'As RegExp 'Removed for late binding
'Setup regular expression
Set reg = CreateObject("vbscript.regexp")
reg.Global = True
reg.IgnoreCase = True
reg.Pattern = "\[\$\-+[\w]*[\w]\]"
'Loop through all cells and change the date formate
For Each cell In ActiveSheet.UsedRange.Cells
If IsDate(cell.Value) Then
f = cell.NumberFormat
If reg.Execute(f).Count > 0 Then
'Language is set so replace it
f = reg.Replace(f, LCID)
Else
'Langauge is not set so add it
f = LCID & f
End If
cell.NumberFormat = f
End If
Next
End Sub
คุณยังสามารถทำสิ่งนี้แบบหนึ่งต่อหนึ่งผ่าน วิธีการด้วยตนเอง โดยคลิกขวาที่เซลล์แล้วคลิก "จัดรูปแบบเซลล์ ... "