我不是VBA专家,我只是顺其自然。 但是我无法绕过这个。
我有一个项目列表,我想获取具有特殊条件的特殊项目的最新日期。 我运行以下循环:
Sub
Dim Lastdate2 As String
For n = 3 To 10000
If Range("patient").Offset(n, 0) = "" Then Exit For
Lastdate1 = ""
Lastdate2 = ""
StartDate = ""
EndDate = ""
For i = 3 To 10000
If Range("patient_suivi").Offset(i, 0) = "" Then Exit For
If Range("patient_suivi").Offset(i, 0) = Range("patient").Offset(n, 0) Then
If InStr(Range("type_contact").Offset(i, 0), "Livraison") > 0 Then
If LCase(Range("livraison").Offset(i, 0)) = LCase(Range("nature_des_soins").Offset(n, 0)) Then
If Range("date_patient_suivi").Offset(i, 0).Value > Lastdate2 Then
Lastdate2 = Range("date_patient_suivi").Offset(i, 0).Value
Else
End If
Else
End If
Else
End If
Else
End If
Next i
If Lastdate2 = "" Then
Else
Range("derniere_livraison_patient").Offset(n, 0) = DateValue(Format(Lastdate2, "dd/mm/yyyy"))
End If
End If
End Sub
我有正确数量的If / Else / End if。有趣的是这个循环:
If Range("date_patient_suivi").Offset(i, 0).Value > Lastdate2 Then
Lastdate2 = Range("date_patient_suivi").Offset(i, 0).Value
例如,我应该得到的日期是20年6月11日(dd / mm / yy)。 -正常工作到1月至6月的每个月的11号(01/01至11 / 01、01 / 02至11/02 ...) -然后一直到从7月到12月的每个月的10日(01/07至10 / 07、01 / 08至10/08 ...) -而且与年份无关!!!好像一年还没有到。 剩下的时间就会出错... 我感到困惑。