gpt4 book ai didi

vba - 将字符串转换为日期 VBA

转载 作者:行者123 更新时间:2023-12-04 21:37:33 35 4
gpt4 key购买 nike

我有一个带有日期和时间的字符串,格式为“DD.MM.YYYY HH:mm”,我想将其转换为日期(无论格式如何)。

我正在使用这个测试代码,但我找不到它为什么不起作用:

Dim Data1 As String, Data2 As Date    
Data1 = "01.01.2015 01:01"
Data2 = CDate(Data1)

最佳答案

在使用 CDate 转换之前,尝试将字符串转换为更接近传统 EN-US 格式的内容.

Dim Data1 As String, Data2 As Date
Data1 = Replace("01.01.2015 01:01", Chr(46), Chr(47))
Data2 = CDate(Data1)
Debug.Print Data2

首先,提供从 MDY 和 DMY 格式产生模棱两可结果的样本数据通常不是一个好主意。这可能是 VBA 中的一个问题。提供绝对是其中之一的数据。

对于包含模棱两可的 DMY/MDY 数据的字符串,例如 "02.01.2015 01:01" ,这是一个更好的方法。
Dim Data1 As String, Data2 As Date, vDATE As Variant, vTIME As Variant
Data1 = "02.01.2015 01:01"
vTIME = Split(Data1, Chr(32))
vDATE = Split(vTIME(0), Chr(46))
Data2 = DateSerial(vDATE(2), vDATE(1), vDATE(0)) + TimeValue(vTIME(1))
Debug.Print Data2

VBA 使用第一种方法进行“最佳猜测”,结果错误为 2015 年 2 月 1 日。第二种方法更明确,并获得 2015 年 1 月 2 日的正确答案(假设已知 DMY 日期格式)。简而言之,约会并不总是足够的。确保它是正确的日期。

关于vba - 将字符串转换为日期 VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31805453/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com