该代码从" HistoryUrgents"中的列中读取字符串列表。然后它移动到另一张名为" Sheet1"然后它找到它们并绘制包含字符串的行。它一直工作,直到它读取第二个字符串(它描绘了包含第一个字符串的所有行)。代码只是停留在连续循环中。如果我们通过ctrl + break强制关闭它,那么我们会弹出一个"运行时错误' 91'"
正如您在附加截图中看到的那样," c"变量没什么,虽然If Not c Is Nothing Then
传递了它。
答案 0 :(得分:2)
在Do循环中,您的范围和单元格不一定引用Sheet1 - 它们引用当前活动的工作表。
在所有范围&之前添加一个点(句点)你的细胞参考
With...End With
阻止。
Set c = .Cells.Find(What:=
和
.Range(.Cells(c.ROW, START_MARK), .Cells(
由于您发布了代码图片,我无法对此进行测试 - 如果您发布了代码并将其包装在代码标记中,我可以将其复制到工作簿中。 / em>的
答案 1 :(得分:0)
您获得运行时错误91的原因是您尝试访问不存在的对象的属性。如果c
为Nothing
,则c.Address
不存在。我不知道为什么这不会自动抛出错误,你是在做什么来覆盖错误处理程序或抑制弹出消息?
我的建议是将c.Address <> firstAddress
支票移到循环体内。
例如
Do
If c.Address <> firstAddress Then
c.Select
' ... insert rest of your code ...
' ...
End If
Loop While Not c Is Nothing