VBA改变日期格式

时间:2017-08-29 09:20:59

标签: excel-vba vba excel

我有一个V列,其中包含dd/mm/yyyy格式的日期。但是,系统格式将其显示为mm/dd/yyyy。我想将日期格式从dd/mm/yyyy转换为dd-mmm-yyyy

ThisWorkbook.Sheets(1).Range("W" & i).NumberFormat = "dd-mmm-yyyy"

当我使用上述代码进行转换时,它会将值从08/02/2017更改为02-Aug-2017。它应该更改为08-Feb-2017。请协助。

2 个答案:

答案 0 :(得分:0)

从一开始就尝试简化一切。 8.Feb.2017是Excel系统中的第42774天。因此,在空白页中运行以下内容并检查结果:

Option Explicit

Public Sub TestMe()

    [a1] = 42774 '08-Feb-17
    [a2] = [a1]
    [a3] = [a1]
    [a4] = [a1]

    [a2].NumberFormat = "dd-mmm-yyyy"
    [a3].NumberFormat = "mmm-dd-yyyy"
    [a4].NumberFormat = "dd-mm-yyyy"

End Sub

在Excel中,第1天是1900年1月1日。 在VBA第1天是1899年12月31日。

答案 1 :(得分:0)

您的代码没有任何问题。您输入了“08/02/2017” - 这被解释为输入格式为“mm / dd / yyyy”。结果,该单元显示“02-Aug-2017”。

您必须更改系统日期格式以阅读输入(08/02/2017)作为日期值,格式为“dd / mm / yyyy”。之后,您的单元格将以所需的格式显示日期&价值(2017年2月8日)。

要更改系统日期格式,请转到“控制面板”>地区&语言。您当前的格式必须是“英语(美国)”[或具有mm / dd / yyyy日期格式的内容]。将其更改为“英语(英国)”。

这应该解决你的问题。