我正在尝试运行执行以下操作的代码:
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
答案 0 :(得分:0)
你检查过c是否有对象: &#39;如果c什么都不是&#39; 你结束了你的陈述 &#39;结束如果&#39; 然后你把&#39; c&#39;循环条件中的对象 &#39;循环而c.Address&lt;&gt; firstaddres&#39; 如果,那个时刻,&#39; c&#39;对象什么都不是,它会给出错误
每当对象变量为空或者您忘记使用&#39;时,您提到的错误就会发生。条款