我是VB的新手.我在网上看到,为了从函数返回,你做了如下的事情 -
Private Function Add(ByVal x As Integer, ByVal y As Integer) As Integer
Dim Res as integer
Res = x + y
Add = Res ' use the function's name
End Function
Run Code Online (Sandbox Code Playgroud)
我的问题是,这种语法是否也适用于用户定义的类型?如果没有,那么语法是什么.我试过以下 -
Public Function getDetails() As clsDetails
Dim details As clsDetails
Set details = New clsDetails
With details
.X = "R"
.Y = "N"
.Z = "N"
' more code follows
End With
getDetails = details 'gives error-> object variable or with block variable not set
End Function
Run Code Online (Sandbox Code Playgroud)
但是这给了我上面一行的错误 - "对象变量或没有设置块变量".
我在这做错了什么?
我想clsDetails不是UDT,而是一个类.对于定义为对象的变量,您需要使用SET关键字.即:
set getDetails = details
Run Code Online (Sandbox Code Playgroud)
有关使用UDT作为函数返回值或参数的详细信息,请参阅:用户定义类型(UDT)作为类模块中的公共Sub(VB6)中的参数.