如何解决VBA循环通过单元格范围失败
| 出于某种原因,下面的代码在第二行失败,并显示运行时错误\'1004 \',表明对象对象“ __Application \'的方法\'Intersect \'失败\”,并且在某些情况下,我尝试修改代码,它会产生\'_ Global \'失败。奇怪的是,我使用过各种版本的代码,有时在调试模式下进行了许多更改后,我重试了此表单,然后运行。如果然后尝试重新运行代码,它将再次失败。 rng1是同一列中的一组单元格,rng2是多个列中具有与rng1相同行的单元格 例如rng1 = {A2:A10}, rng2 = {D2:H10} 相对于rng1中的单个条目,指令从rng2的单个行中保存单元格的值。我检查了范围是否在同一张纸上,有效且(在命名时)引用了正确的单元格。For Each c In Range(\"rng1\").Cells
For Each d In Application.Intersect(Rows(c.Row),Range(\"rng2\")).Cells
*some instructions here*
Next d
Next c
解决方法
请尝试执行此操作,您的代码唯一对我造成错误的时间是交集最终为空时。
Dim c As Range,d As Range
Dim rng As Range
For Each c In Range(\"test1\")
Set rng = Application.Intersect(Rows(c.Row),Range(\"test2\"))
If rng Is Nothing Then
\'\' Empty intersection \'\'
Debug.Print \"Empty\"
Else
For Each d In rng
\'\' some instructions here \'\'
Debug.Print d.Address
Next d
End If
Next c
当然,您可能还应该在工作表的前面加上Range
和Rows
,例如:
Sheet1.Rows
和
Sheet1.Range(\"test1\")
等等...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。