【问题标题】:VBA + autocomplete dateVBA + 自动完成日期
【发布时间】:2015-01-22 22:14:28
【问题描述】:

我有一个变量(值来自文本框),它是 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单元格的值,而是来自变量。

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

【问题讨论】:

    标签: vba date excel


    【解决方案1】:

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

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

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

    【讨论】:

    • 哇,就是这么简单!好吧,我的变量是一个字符串,在我的搜索中我没有找到函数 DataValue。好的,非常感谢,它成功了!
    猜你喜欢
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 2019-09-05
    • 1970-01-01
    • 2017-04-23
    相关资源
    最近更新 更多