我目前正在处理VBA问题。我想将日期/时间拆分为不同的列。时间以24小时格式给出。
当我使用内置的Excel函数时,一切都按预期工作,并保留24小时格式。但是,一旦我尝试在VBA中使用相同的代码(之前记录的),时间格式将更改为12小时,并且(这是真正的问题),它将使用另一个单元格添加“ AM”或“ PM”。 有什么方法可以阻止Excel这么做吗?
我可以更改所需范围的数字格式,以我希望的24小时格式给我时间,但是下一个单元格仍被AM或PM占用(即使像13:xx:xx AM这样的时间也没什么用感)
这是我的TextToColumn函数代码:
text.TextToColumns Destination:=text.Cells(1, -5), DataType:=xlDelimited _
, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
任何帮助或建议都值得赞赏!
答案 0 :(得分:0)
使用格式功能。根据我的测试,我们可以使用类似于以下的代码(不要直接使用hh:mm:ss,而应使用“ hh:mm:ss t” /“ hh:mm:ss tt”以及您喜欢的代码替换t / tt):
Sub Test()
Dim dTime As Date
Dim x As Integer
Dim ws As Worksheet
Set ws = ActiveSheet
Dim index As Integer
MsgBox ws.Rows.Count
x = 1
For index = 1 To ws.UsedRange.Rows.Count
' Sets the date in the cell of the first column
Cells(x, 1).Value = Format(Cells(index, 3), "mm/dd/yyyy")
' Sets the time in the cell of the second column
Cells(x, 2).Value = Format(Cells(index, 3), "hh:mm:ss t")
x = x + 1
Next
End Sub