我花了几天时间试图解决这个问题。我想要做的是获取一个日期(Current_date)并将其与列表(大约150个值,GRD日期)进行比较,然后应该返回当前日期大于的数字。然后应该打印出来。完成此操作后,当前日期将移至下一个日期,整个过程将重复进行。
Sub GRD()
Dim Current_date As Long
Dim GRD_Count As Long
Dim Count As Long
Dim g As Long
Dim GRD_end_date As Long
GRD_Count = 0
Count = 10
g = 10
Do Until Worksheets("ABC").Cells(Count, 14).Value = ""
Current_date = Worksheets("ABC").Cells(Count, 14).Value
Do Until Worksheets("ABC").Cells(g, 3).Value = ""
GRD_end_date = Worksheets("ABC").Cells(g, 9).Value
If Current_date > GRD_end_date Then
GRD_Count = GRD_Count + 1
Else: GRD_Count = GRD_Count
End If
g = g + 1
Loop
Worksheets("ABC").Cells(Count, 16).Value = GRD_Count
Count = Count + 1
Loop
End Sub
它为所有日期赋予我1的值,即使这应该是仅第一个Current_date的值。
有没有人有任何想法?
答案 0 :(得分:0)
从我看到你没有重置每次迭代的GRD_count,你在开始循环之前启动它,并且在循环内部,当curr_date>时,你将其递增1。 GRD_end_date,或者保持相同(这是redundent但现在没关系)。尝试在打印之后添加GRD_count = 0,然后再循环回到下一行。