首页 > 解决方案 > Excel - 日期 - vba 文本框到表格

问题描述

我有下面的 vba 用于设置今天日期的用户表单文本框。现在,当数据输入到我的产品列表表中的表格中时,日期被重新格式化。

Private Sub UserForm_Initialize()
txt_date.Value = Format(Date, "d/m/yyyy")
End Sub

因此,当数据添加到工作表中时,它会变成 m/d/yyyy。

标签: excelvbadateexcel-2010

解决方案


VBA 中使用的数据类型 + 回写工作表的方式将影响 Excel 解释数据的方式。看看超越的例子:

Sub TestDate()
    Dim datestr As String, dateDate As Date
    
    datestr = "11/05/2021"
    dateDate = "11/05/2021"
    
    Sheet1.Range("A1").Value = CDate(datestr)
    Sheet1.Range("C1").Value = dateDate
    
    Sheet1.Range("A2").Value2 = CDate(datestr)
    Sheet1.Range("C2").Value2 = dateDate
End Sub

通过使用“value2”,您可以看到定义为“日期”类型的 var 的原始数据如何发送回 Excel。恕我直言,这是最好的方法,但您必须直接在 Excel 工作表中设置正确的格式(选择列 > 单元格格式 > 日期 => 选择您想要的格式(您也可以在 vba 中设置,但我不这样做)不认为这里需要它)。

祝你好运,


推荐阅读