我有一个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
。请协助。
答案 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日期格式的内容]。将其更改为“英语(英国)”。
这应该解决你的问题。