如何传递Range对象以用于其他函数?

时间:2014-12-14 16:48:36

标签: excel vba

我有一个可以点击的按钮。此按钮将创建一个范围并将其传递给另一个更改该范围值的函数。

Sub CommandButton21_Click()
   Dim example As Range
   Set example = Range("A1")
   test (example)
End Sub

此功能不起作用。由于某种原因,其他功能不能使用该范围。

Function test(x As Range)
    x.Value = "changed"
End Function

有任何帮助吗?该错误表示"对象需要"。我试图传递像[A1]这样的东西,或者把它变成没有运气的变种。

2 个答案:

答案 0 :(得分:1)

你不能“呼叫”一个功能,你呼叫一个子......试试这个:

Sub CommandButton21_Click()
   Dim example As Range
   Set example = Range("A1")
   MsgBox test(example)
End Sub

Function test(r As Range) As String
    r.Value = "Changed"
    test = "O.K."
End Function

答案 1 :(得分:1)

使用电话:

Call test(example)

如果您不返回任何值,请使用Sub而不是Function。