You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA中Text To Columns无法完全应用24小时时间格式问题求助

VBA文本分列后无法将时间转换为24小时制

我编写了以下VBA代码段,但无法将A列中的时间部分转换为24小时制。原始数据格式为dd/mm/yyyy hh:mm:ss,正午之后的时间(如14:12)会显示为12小时制的02:12。

(以下代码中删除行和列的操作与Text To Columns无关,但包含在代码段内)

With ActiveSheet
    .Rows("1:5").Delete Shift:=xlUp
    .Range("F:F,N:N,O:O,P:P,S:S,U:U,V:V").Delete Shift:=xlToLeft
    .Columns("A").NumberFormat = "m/d/yyyy"
    .Columns("B").Insert Shift:=xlToRight
    .Columns("B").NumberFormat = "HH:mm:ss"
    .Columns("A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 9)), TrailingMinusNumbers:=True
End With

我设置了第三个数组段以避免在第三列显示AM/PM。

编辑1:上述代码已采纳@PeterT的建议,将新插入的B列格式设置为HH:mm:ss,但13:00:00至23:59:59之间的时间仍被转换为01:00:00至11:59:59。

编辑2:附上示例:

  • 工作簿初始状态:
    工作簿初始状态
  • 文本分列处理后的时间格式问题(应显示13:17:52却显示为01:17:52):
    文本分列后的时间问题

此前我在其他代码问题上得到过有用建议,希望此次也能获得帮助。我已搜索类似问题但未找到解决方案。


内容的提问来源于stack exchange,提问作者MikeE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 19:55:12