我遇到日期格式问题,我无法理解。
我有两个日期是一个报告日期,用户输入格式为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。
希望有人可以提供帮助吗?
答案 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
,因此日期格式会根据您的区域设置而变化。