这似乎是一个简单的事情要解决,但我不太明白这个问题。我有一个函数,它接受一个Range参数但是当我使用一个循环时,它似乎没有识别它(我得到一个424 - 对象错误)。代码如下。
Sub PrintKeys(Data As Variant, C1 As Range)
Dim key As Variant
Dim Rg As Range
Set Rg = C1
Dim i As Integer
i = 1
For Each key In Data.Keys
Rg.Offset(0, i).Value = key
Rg.Offset(0, i).Interior.ColorIndex = 15
i = i + 1
Next key
End Sub
如果我将上述内容改为,则可行:
placeholders
基于以上所述,Rg是一个Range对象,但前一个示例无法将其传递给Auto_Colour函数,尽管该函数接受一个Range。
我错过了什么?
提前致谢。
答案 0 :(得分:3)
您的问题是第Auto_Colour (Rg)
行
括号告诉VBA传递参数ByVal
覆盖默认(隐式)ByRef
。对于Range
,这会导致调用传递Rg
的默认属性,即Rg.Value
,这导致Auto_Colour
中的类型不匹配
解决方案:放弃()
,即使用Auto_Colour Rg