【发布时间】:2021-06-06 14:38:42
【问题描述】:
所以,我正在尝试自动化 VBA 中的一些日期。我分别获得日期、月份和年份,并将所有三个连接到 VBA 中的一个单元格中。但是通过这种方法,我得到了“未格式化”的日期,并且无法在几个月内过滤它们。 Excel 将它们视为“文本”
在附加的屏幕截图中,您可以看到底部 4 个单元格,我实际上是通过按 F2 并输入来刷新的。这会将它们更新为日期格式,并且过滤器将它们视为“日期”
如何实现自动化,以便仅在 VBA 中以这种格式放置它们?
代码如下
'for each row run a formula to concatenate G+F+H for DD/MM/YYYY
For Cnt = 2 To Cnt2
If Cells(Cnt, 7).Value > 12 Then
Cells(Cnt, 9).Value = Cells(Cnt, 7).Value & "." & Cells(Cnt, 6).Value & "." & Cells(Cnt, 8).Value
Else
Cells(Cnt, 9).Value = Cells(Cnt, 6).Value & "." & Cells(Cnt, 7).Value & "." & Cells(Cnt, 8).Value
End If
Next Cnt
'delete F G H columns
Columns("F:H").Select
Selection.EntireColumn.Delete
Columns("F:F").Select
Selection.NumberFormat = "d/m/yy"
【问题讨论】:
-
创建“真实”日期,然后对其进行格式化。使用 vba
Dateserial函数来做到这一点。