VBA 文本到列读取美国日期格式

标签 vba excel excel-2007

在 vba 中运行文本到列时,只要可能,它就会将我的日期视为美国日期,而不是英国日期。例如,31-Aug 保持为 31-Aug,但 01-Sep 更改为 09-Jan!

有什么方法可以在 vba 运行之前指定所有日期均采用英国格式吗?即使只是重新格式化为美国日期以显示美国日期也行不通,因为我们有运行 if date < Today 的代码。 ,这当然会导致更改日期格式的问题。

数据源采用 dd/mm/yyyy 格式,但 Excel 将其读取为 mm/dd/yyyy!

最佳答案

pnuts 评论是解决这个问题最简单的方法。

说明:

运行“记录宏”,选择您的列并启动文本到列向导。

在文本转列向导的第 3 页,“列数据格式”下,“日期”选项自动设置为“MDY”。将其更改为“DMY”。

停止宏,你会发现这段代码

Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A:A"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 4), TrailingMinusNumbers:=True

=Array(1,4)中的“4”是决定DMY格式的部分。

关于VBA 文本到列读取美国日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26119089/

相关文章:

excel - 如何使用绑定(bind)数据集自动更新Access中的报告?

python - openpyxl - 迭代列和行以从工作表中间获取数据

c - C语言读取excel文件

html - 导航到 VBA 中的页面后无法重置 HTML 文档

vba - 如何访问已打开的特定工作簿而不使用其名称?

vba - Excel:找不到项目或库

excel - 从 Excel 单元格中获取电子邮件地址

VBA - 正确销毁无模式用户窗体实例

arrays - 为什么 VBA 类不能通过 ByRef Array()?

c++ - 从 win32 应用程序使用 Excel 2007