循环遍历一系列细胞

时间:2011-12-20 18:06:16

标签: excel vba excel-vba

我需要在c27的每个单元格上运行AddColumnofData函数,向右运行每个连续的非空单元格,但是我得到“需要运行时错误424对象”,任何帮助都会非常感激。

Set col = Range("$C$27", Range("$C$27").End(xlToRight))

For Each c In col
    AddColumnofData (c)
Next c

3 个答案:

答案 0 :(得分:3)

假设您已将AddColumnofData定义为

Sub AddColumnofData(c As Range)
    ...
End Sub

你的电话需要

AddColumnofData c

(即删除括号)

Jesse建议DIM你的变量,而不是强制性的建议。也适用于col。为了使其成为可能,请将Option Explicit添加到模块的顶部。

答案 1 :(得分:1)

您可以在将范围对象传递给函数之前声明或设置范围对象。要证明您将正确的值传递给函数,请尝试此操作。

Dim r As Range '-- if you don't declare it as a range type you get a variant type as default
Dim c As Range '-- this is used to store the single cell in the For Each loop

Set r = Range("A1:D1") '-- substitute your range as per your example

For Each c In r '-- you could also use r.cells

    MsgBox c.Value '-- pass to your function instead of a call to the Message Box

Next

这会生成一系列4个消息框,其中包含活动工作表的单元格A1到D1中的值,如果您的Range“r”非常大,则将其传递给Debug.Print。

答案 2 :(得分:0)

如果您声明c:

Dim c as Range

然后你应该工作。