我需要在c27的每个单元格上运行AddColumnofData函数,向右运行每个连续的非空单元格,但是我得到“需要运行时错误424对象”,任何帮助都会非常感激。
Set col = Range("$C$27", Range("$C$27").End(xlToRight))
For Each c In col
AddColumnofData (c)
Next c
答案 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
然后你应该工作。