EXCEL VBA:如何将dd / mm / yy转换为yyyy.mm.dd

时间:2016-07-13 00:08:24

标签: vba excel-vba date replace format

我想将日期格式dd / mm / yyyy的格式更改为yyyy.mm.dd。

sub m()
dim date1 as date
dim date2 as date
date1= #1/1/2008#
date2= #1/1/2008#
for conteo = date1 to date2 
conteo = Format$(conteo, "yyyy.mm.dd")
sheets(1).range("A1").value= conteo
next conteo
end sub

如下所示:

 conteo = Format$(conteo, "yyyy.mm.dd") 

它会转换,但它会在日期和我更改" yyyy.mm.dd"之间引用。进入yyyy.mm.dd格式函数我面对"对象需要"错误。

由于

1 个答案:

答案 0 :(得分:2)

首先,您使用相同的变量作为循环ctr和存储格式化字符串。

还从格式中删除$。 (或者,请参阅评论中@thunderframe解释的原因。)

您将在调试原因格式中看到引号(“)返回一个字符串,但是当您在单元格中放下该值时,它将消失。

Sub m()
    Dim date1 As Date
    Dim date2 As Date
    date1 = #1/1/2008#
    date2 = #1/1/2008#
    For conteo = date1 To date2
        strDate = Format(conteo, "yyyy.mm.dd")
        Sheets(1).Range("A1").Value = strDate
    Next conteo
End Sub

此外,由于您已将date1和date2设为Date类型,因此将采用另一种更好的方法。

Sub m()
    Dim date1 As Date
    Dim date2 As Date
    date1 = #1/1/2008#
    date2 = #1/1/2008#
    For conteo = date1 To date2
        Sheets(1).Range("A1").NumberFormat = "YYYY.MM.DD"
        Sheets(1).Range("A1").Value2 = conteo
    Next conteo
End Sub