我的Excel文件有一个SQL连接,它运行存储过程并输出三列,每列都是时间格式。输出采用“hh:mm:ss”格式,Excel不会占用时间。我发现如果我手动使用默认设置的'Text to Columns'工具,Excel会将'0:03:05'转换为'12:03:05 AM'。我使用VB代码将Text复制到Column,但只有当它是Sub中唯一的代码时它才有效。目前,这工作=
Sub textToColumns()
Sheets("Main Data").Visible = True
Sheets("Main Data").Select
Sheets("Main Data").Select
Columns("Z:Z").Select
Selection.textToColumns Destination:=Range("Z:Z"), _
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter _
:=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _
Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
Sheets("Main Data").Visible = False
End Sub
但这不是=
Sub textToColumns()
ActiveWorkbook.RefreshConnections
Sheets("Main Data").Visible = True
Sheets("Main Data").Select
Sheets("Main Data").Select
Columns("Z:Z").Select
Selection.textToColumns Destination:=Range("Z:Z"), _
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter _
:=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _
Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
Sheets("Main Data").Visible = False
End Sub
唯一的区别是ActiveWorkbook.RefreshConnections
我尝试将Refresh和Text to Columns分成两个独立的Subs,然后再调用它们,但它没有用。
值得注意的是,我根本没有收到任何错误消息。