通过单元格的VBA循环失败

由于某种原因,下面的代码在运行时错误“1004”的第二行失败,说明对象“_Application”失败的“方法”相交“,并且在某些情况下,我试图修改它生成的代码”_Global '失败。 奇怪的是,我玩过这个代码的各种版本,有时候在debugging模式下进行了很多修改之后,我重试了这个表单然后运行。 如果我然后尝试重新运行代码,则会再次失败。


rng1是来自同一列的一组单元格,rng2是一组多行的单元格,与rng1具有相同的行

例如rng1 = {A2:A10},rng2 = {D2:H10}

这些指令将单个rng2行中的单元格的值相对于rng1中的单个条目保存到一个数组中。 我已检查范围是在同一张纸上,有效和(其中名称)正在引用正确的单元格。

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 

当然,你也应该在你的RangeRows前面加上表格,例如:

 Sheet1.Rows 

 Sheet1.Range("test1") 

诸如此类……