VBA + 自动完成日期

VBA + autocomplete date

我有一个变量(值来自文本框),它是 dd/mm/yyyy 格式的日期。我想自动填充一些单元格,但它会更改年份而不是日期。我知道这是因为它不将其视为日期而是字符串。但是我找不到实现它的方法。这是一些试用版:

Sub tryout()

'result: 30/12/2015  30/12/2016  30/12/2017  30/12/2018  30/12/2019  30/12/2020  30/12/2021  30/12/2022  30/12/2023
Range("A1").Value = "30/12/2015"
Range("A1").Select
Selection.AutoFill Destination:=Range("A1:I1"), Type:=xlFillDefault

'result: 30/12/2015  30/12/2016  30/12/2017  30/12/2018  30/12/2019  30/12/2020  30/12/2021  30/12/2022  30/12/2023
Range("A2").Value = "30/12/2015"
Range("A2").NumberFormat = "dd/mm/yyyy"
Range("A2").Select
Selection.AutoFill Destination:=Range("A2:I2"), Type:=xlFillDefault

'result: 30/12/2015  30/12/2016  30/12/2017  30/12/2018  30/12/2019  30/12/2020  30/12/2021  30/12/2022  30/12/2023
Range("A5").Value = Format("30/12/2015", "dd/mm/yyyy")
Range("A5").Select
Selection.AutoFill Destination:=Range("A5:I5"), Type:=xlFillDefault

'result: 30/12/2015  31/12/2015  01/01/2016  02/01/2016  03/01/2016  04/01/2016  05/01/2016  06/01/2016  07/01/2016
Range("A3").NumberFormat = "dd/mm/yyyy" 
Range("A3").Select
Selection.AutoFill Destination:=Range("A3:I3"), Type:=xlFillDefault
End Sub

最后一个是我需要的,但不是来自 excel 单元格的值,而是来自变量的值。

希望有人能指点一下。 提前致谢

为什么要将日期作为字符串输入 Range("A1")

试试这个,如果有帮助请告诉我:

Sub saas()
    Range("A1").Value = DateValue("30/12/2015")
    Range("A1").NumberFormat = "dd/mm/yyyy"
End Sub