Excel vba - 将工作表传递给公共函数

use*_*754 2 excel vba excel-vba

我有一个公共职能:

Public Function Test(wrs As Worksheet, arr As Variant) As Variant
Run Code Online (Sandbox Code Playgroud)

我有主要的子:

Sub Main()
Dim ws as Worksheet
Dim out, in

ws = ThisWorkbook.Sheets("Sheet1") 

out = Test (ws, in)
Run Code Online (Sandbox Code Playgroud)

调用测试我得到"ByRef参数类型不匹配"错误.

Vit*_*ata 6

像这样使用Set关键字:

set ws = ThisWorkbook.Sheets("Sheet1") 
Run Code Online (Sandbox Code Playgroud)

编辑:

然后确保您也设置了函数的返回值.像这样:

Public Function Test() As Variant
    Set Test = ActiveSheet
End Function

Public Sub TestMe()
    Debug.Print Test.name
End Sub
Run Code Online (Sandbox Code Playgroud)