我正在尝试根据从文本数据库下载的数据的日期范围自动更新 Excel 中报告顶部的日期范围。在下面列出的宏中,我收到运行时错误“13”:类型不匹配PEndDt = Right(PaidDateRange, 8)
。
我认为 Date 变量 PEndDt 不喜欢获取字符串。但我已在其他宏中将字符串分配给 Date 变量!我不知道如何修复此问题。请帮忙。
Sub test()
Dim PEndDt As Date
Dim PaidDateRange As String
PaidDateRange = "PAID DATE 1/01/13 - 9/31/13"
PEndDt = Right(PaidDateRange, 8)
Range("A1") = "Report thru " & Format(PEndDt, "Long Date")
End Sub
答案1
问题出在字符串上。
9/31/13 不是有效日期。
2013 年 9 月 31 日也不是有效日期。
答案2
您必须将字符串解析为月、日、年格式
Dim itemDate as String
itemDate = Right(PaidDateRange, 8)
PEndDt = DateSerial(Right(itemDate, 2), Left(itemDate, 2), Mid(itemDate, 4, 2))
如果您只是将其放回字符串,为什么要转换为日期?
Range("A1") = "Report thru " & Right(PaidDateRange, 8)