【发布时间】:2018-03-16 15:59:19
【问题描述】:
我正在尝试运行执行以下操作的代码:
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
【问题讨论】:
-
如果有人走到你面前问“为什么会这样”,你的第一个想法是什么是“这个”和“那个”。所以说你有错误,但实际上并没有告诉任何人它们是什么,这与为什么会这样是一样的。提供您的期望、正在发生的事情以及任何错误的详细信息。
-
对此感到抱歉....编辑帖子以添加有关我遇到错误的位置的更多详细信息。