【发布时间】:2018-01-09 11:25:48
【问题描述】:
我有 2 列具有相同的日期值和相同的自定义格式。 “A”列似乎是文本格式,“B”列似乎是日期时间格式,这是我想要实现的。
“B”列由“Text to Columns”工具修改,这是我找到的地方 绝招:How to Refresh Cell Data After Applying Number Formatting in Excel
现在,我想通过 VBA 对“A”列做同样的事情来自动化这件事。
这是我到目前为止尝试过的,没有任何改变:
方法一:
ThisWorkbook.Worksheets("sheet1").Range("A2:A10").Calculate
方法二:
ThisWorkbook.Worksheets("sheet1").Range("A2:A10").Select
Selection.NumberFormat = "dd.mm.yyyy hh:mm"
Selection.TextToColumns DataType:=xlDelimited
方法3:
Dim rngCell As Range
Range("A2:A10").Select
For Each rngCell In Selection
If IsDate(rngCell.Value) Then
rngCell.Value2 = Format(rngCell.Value, "dd.mm.yyyy hh:mm")
End If
Next rngCell
方法4: 我还为我对“B”列所做的事情记录了一个宏,但什么也没发生:
Range("A2:A10").Select
Selection.TextToColumns Destination:=Range("A2"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
这是 Excel 文件:Test.xlsb
【问题讨论】:
-
另一种有效的手动方法是在每个单元格中按“Enter”。