gpt4 book ai didi

VBA循环遍历单元格范围失败

转载 作者:行者123 更新时间:2023-12-04 02:21:31 24 4
gpt4 key购买 nike

出于某种原因,下面的代码在第二行失败,运行时错误“1004”指出“对象‘_Application’的方法‘Intersect’失败”,在某些情况下我试图修改它生成的代码'_Global' 失败。奇怪的是,我玩过这段代码的各种版本,有时在 Debug模式下经过多次更改后,我重试了这种形式,然后它运行了。如果我随后尝试重新运行代码,它会再次失败。


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

当然,您可能还应该在 RangeRows 前加上工作表,例如:

Sheet1.Rows

Sheet1.Range("test1")

等等……

关于VBA循环遍历单元格范围失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6136937/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com