嵌套Do While

时间:2018-03-16 15:59:19

标签: vba loops do-while

我正在尝试运行执行以下操作的代码:

1)查找匹配索引号

的记录

2)在找到匹配的行中,检查条件

3)如果满足条件,则记录存储在同一行中的列中的索引号作为新变量

4)查找存储自3)

的匹配索引号的记录

5)评估条件记录的行

6)如果满足条件,那么我想从i = 0填充数据直到找不到更多匹配

7)检查4)中开始的循环中的下一场比赛

8)如果在4)中找不到更多匹配,则重复在1)

中开始的循环

我以前做过的VBA基本上会评估4)到7),这是有效的。试图将循环基本嵌套在我自己的错误开始的地方。

以下是我正在尝试运行的代码:

i = 0
With Worksheets(ReferenceSheet).Range("A1:A" & endrow)
Set c = .Find(CIFNumber, LookIn:=xlValues)

If Not c Is Nothing Then
firstaddress = c.Address

Do
' e = Worksheets(ReferenceSheet).Range("B" & .FindPrevious(c).Row)
  j = CStr(c.Row)
  CIFRelationshipType = Worksheets(ReferenceSheet).Cells(j, "G").Value
  GCIFNumber = Worksheets(ReferenceSheet).Cells(j, "E").Value
If CIFRelationshipType = "G" Then

        Set b = .Find(GCIFNumber, LookIn:=xlValues)
        If Not b Is Nothing Then
        firstbaddress = b.Address
        Do
    matchedj = CStr(b.Row)
    GCIFRelationshipType = Worksheets(ReferenceSheet).Cells(matchedj, "G").Value
If GCIFRelationshipType = "P" Then

i = i + 1
'determine which input loop we are on then populate accordingly.

为每个i填充数据

End If
    Set b = .FindNext(b)
If b Is Nothing Then
End If
Loop While b.Address <> firstbadress
End If

End If
  Set c = .FindNext(c)
If c Is Nothing Then
End If

就在这里,我得到了

  

错误91“对象变量或未设置块变量”

Loop While c.Address <> firstaddress
End If
End With

1 个答案:

答案 0 :(得分:0)

你检查过c是否有对象: &#39;如果c什么都不是&#39; 你结束了你的陈述 &#39;结束如果&#39; 然后你把&#39; c&#39;循环条件中的对象 &#39;循环而c.Address&lt;&gt; firstaddres&#39; 如果,那个时刻,&#39; c&#39;对象什么都不是,它会给出错误

每当对象变量为空或者您忘记使用&#39;时,您提到的错误就会发生。条款