我想获得一些有关如何将日期格式更改为公历(美国)的建议(我的年份是在布德迪斯日历(泰国)中,年份在布德迪斯日历中是年)。
我运行了代码,日期显示为26.06.2562
,我希望它是26.06.2019
。
Sub header_adding ()
dates = Now()
dates = Format(Date, "dd.mm.yyyy")
ws.Range("J1").Value = "GI status as of" & " " & dates
End Sub
答案 0 :(得分:1)
您需要计算,不能只格式化。
参见https://www.google.com/search?q=vba+convert+gregorian+to+thai+date
因此,您必须从佛教年份中减去543
。
Option Explicit
Public Sub header_adding()
Dim GregorianDate As String
GregorianDate = Format$(DateSerial(Year(Date) - 543, Month(Date), Day(Date)), "dd.mm.yyyy")
ws.Range("J1").Value = "GI status as of" & " " & GregorianDate
End Sub
答案 1 :(得分:0)
根据the answers to this question on the Microsoft Community forums,Excel没有自己的设置来决定默认年份是多少。但是,您可以将系统日期更改为“美国”日期,并且Excel现在应使用该新年作为默认日期。
答案还链接to this page by Allen Wyatt,该链接提供了用于修改默认年份(如果您位于年份的前几个月)的宏。对其进行修改以修改您输入的任意日期的年份应该足够简单:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.CountLarge > 1 Then Exit Sub
If Target = "" Then Exit Sub
If Not IsDate(Target) Then Exit Sub
Application.EnableEvents = False
Target = DateAdd("yyyy", -543, Target)
Application.EnableEvents = True
End Sub