VBA中的日期格式来自文本字符串

时间:2017-11-15 11:58:03

标签: excel excel-vba date vba

我遇到日期格式问题,我无法理解。

我有两个日期是一个报告日期,用户输入格式为MM / DD / YYYY显示为(11/15/2017)在speadsheet上。这是来自Userform的输入,仅询问月份和日期,但使用当前年份。

然后我有一系列代码验证数据行与ReportDate匹配并生成信息。要获取数据日期,我需要在文本字符串中查找单词PPP并获取继续@符号的数字。

我分别得到日期和月份值,因为此字符串中只显示日期/月份,并显示为Dim Year1 As Variant Dim Month1 As Variant Dim Day1 As Variant If Not IsError(Mid(PODRng, InStr(1, PODRng, "PPP", vbTextCompare) + 4, 5)) Then Year1 = Format(Now(), "YYYY") Month1 = Mid(PPPRng, InStr(1, PPPRng, "PPP", vbTextCompare) + 4, 2) Day1 = Mid(PPPRng, InStr(1, PPPRng, "PPP", vbTextCompare) + 7, 2) PPPTim = Day1 & "/" & Month1 & "/" & Year1 'PPPTim.NumberFormat = "MM/DD/YYYY" If PPPTim = ReportDate Then Cell.Offset(0, 49).Value = PPPTim ' ElseIf InStr(1, PODRng, "PPP", vbTextCompare) > 0 Then Cell.Offset(0, 49).Value = "Other Date" End If

以下是我的代码的摘录,但它不是完整的脚本。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.20.1</version>
        </plugin>

结束如果

数据源大约是3k-5k行,我已经完成了代码并且在它到达此代码时会中断。我可以确认在检查本地时,PPPTim和ReportDate都显示为15/11/2017,但匹配结果为False。

希望有人可以提供帮助吗?

1 个答案:

答案 0 :(得分:1)

这是你要找的吗?

Dim podRNG As String,n1 As Integer,n2 As Integer,yourDate As Date

podRNG = "PPP@11/15"

n1 = InStr(podRNG, "@") + 1
n2 = InStr(podRNG, "/") + 1

PPPTim = CDate(Mid(podRNG, n1, n2 - n1 - 1) & "/" & Mid(podRNG, n2) & _
    "/" & Format(Now(), "YYYY"))

返回(在我的系统上):

  

二零一七年十一月一十五日

...由于数据类型为Date,因此日期格式会根据您的区域设置而变化