【发布时间】:2020-10-31 01:03:02
【问题描述】:
下面是一个 VBA,在启动时我收到错误代码“运行时错误 '13:类型不匹配”。
以前它在通用格式“dd mmm yyyy hhmm”上工作得很好。在使用其他几个 VBA 之后,它现在采用自定义格式“dd mmm yyyy hhmm”。最终目标是在跳过日期的地方插入一个空白行,并在 A 列的空白行中放置“NO DEPARTURS”,对于 B 列和 C 列有“N/A”,对于 D 列输入“dd mmm yyyy 0000”中缺少日期。调试时以 d1= cdate... 开头的行突出显示。
Sub Missing_date()
Dim d1 As Date, d2 As Date
r = 1
start:
If Cells(r + 1, "D") = "" Then Exit Sub
d1 = CDate(Split(Cells(r, "D"), " ")(1) & ", " & Split(Cells(r, "D"), " ")(0) & " " & Split(Cells(r, "D"), " ")(2))
d2 = CDate(Split(Cells(r + 1, "D"), " ")(1) & ", " & Split(Cells(r + 1, "D"), " ")(0) & " " & Split(Cells(r + 1, "D"), " ")(2))
If d2 - d1 >= 2 Then
Rows(r + 1).Insert shift:=xlDown
Cells(r + 1, "D") = Format(d1 + 1, "dd mmm yyyy 0000")
Cells(r + 1, "A") = "NO DEPARTURES"
Cells(r + 1, "B") = "N/A"
Cells(r + 1, "C") = "N/A"
End If
r = r + 1
GoTo start
End Sub
【问题讨论】:
-
编辑您的问题 使用您的数据示例,以文本形式复制/粘贴到工作表中;连同您想要的结果的截图(以及数据,如果它增加了清晰度),对于制定适当的解决方案将非常有价值。