Изменение формата данных на американский формат - PullRequest
1 голос
/ 26 июня 2019

Я хотел бы получить совет относительно того, как изменить формат даты на григорианский (американский) календарь (мой - в календаре бхуддистов (тайский) с годом в календаре бхуддистов для части года).

Я запустил код, и дата появилась как 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 ]

1 голос
/ 26 июня 2019

Вы должны рассчитать, вы не можете просто отформатировать.
Смотри 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
0 голосов
/ 26 июня 2019

Согласно ответам на этот вопрос на форумах сообщества Microsoft , Excel не имеет собственной настройки для выбора года по умолчанию.Однако вы можете изменить системную дату на «американскую», и Excel теперь должен использовать этот новый год по умолчанию.

Ответы также ссылаются на эту страницу Аллена Уайетта , который представляет макрос для изменения года по умолчанию, если вы находитесь в первые несколько месяцев года.Его изменение для изменения года любой даты, которую вы вводите, должно быть достаточно простым:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...