有两列从Access数据库复制到工作簿中。
我想确保数据格式正确,所以我添加了以下代码:
'DateTime Column
Sheets("Sheet1").Columns("A:A").Select
Selection.NumberFormat = "m/d/yyyy hh:mm"
'Time Column
Sheets("Sheet1").Columns("B:B").Select
Selection.NumberFormat = "hh:mm"
日期时间列格式正确。
最初将时间列复制为数字等效值(即0.595277777777778)而不是时间值(14:17)。
运行宏代码对视觉显示没有任何作用,直到我点击F2并输入格式适用的单元格。
是否有方法(没有循环)强制Excel应用格式化?
答案 0 :(得分:3)
您可以使用VBA通过将范围的value属性设置为自身来实现与Steve Homer的答案相同的效果:
Dim r As Range
Set r = Sheets("Sheet1").Columns("B:B")
r.Value = r.Value
答案 1 :(得分:2)
如果您复制列并粘贴为值(如果需要,则通过宏),Excel应重新解释数据类型,以上内容应该正常工作。
答案 2 :(得分:0)
您可以在不将TMP声明为DATE的情况下执行此操作:
TMP = CDate(Range("A1").Value) ' we suppose A1 value is 12:45:00
TMP = "" & TMP ' convert to char
TMP = Left(TMP, 5) ' extract the first 5 char
MsgBox TMP ' for displaying 12:45