这种形式是否可以使用nexted循环?

时间:2015-06-04 09:56:09

标签: excel vba excel-vba

我花了几天时间试图解决这个问题。我想要做的是获取一个日期(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的值。

有没有人有任何想法?

1 个答案:

答案 0 :(得分:0)

从我看到你没有重置每次迭代的GRD_count,你在开始循环之前启动它,并且在循环内部,当curr_date>时,你将其递增1。 GRD_end_date,或者保持相同(这是redundent但现在没关系)。尝试在打印之后添加GRD_count = 0,然后再循环回到下一行。