将数据格式更改为美国格式

时间:2019-06-26 06:24:07

标签: excel vba

我想获得一些有关如何将日期格式更改为公历(美国)的建议(我的年份是在布德迪斯日历(泰国)中,年份在布德迪斯日历中是年)。

我运行了代码,日期显示为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

2 个答案:

答案 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