I'm trying to instantiate an object and return it from a function. The class I'm working with is one that I've created. However when I try to set an Object to what was returned from the function I get an error. What am I doing wrong?
Function CreateBlah(NAME As String, Count As Integer, val As String) As Blah
Dim b As Blah
Set b = New Blah
bkmrk.Initialize NAME, Count, val
MsgBox (bkmrk.NAME)
CreateBlah = bkmrk
End Function
Then in the other function...
Dim bmrk As Blah
Set bmrk = CreateBlah("Test", 1, Trim(AString))
I also tried...
Dim bmrk As Object
Set bmrk = CreateBlah("Test", 1, Trim(AString))
I'm new to VBA, can anyone tell me what I'm doing wrong?
You need to use set every time you assign an object. This means when setting return value and when assigning the return value to a variable. Late Bound Example:
Public Sub Example()
Dim objWrd As Object
Set objWrd = GetWord
objWrd.Visible = True
objWrd.Quit
End Sub
Public Function GetWord() As Object
Set GetWord = CreateObject("Word.Application")
End Function
Early Bound Example:
Public Sub Example()
''//Requires reference to Microsoft Office Word
''//(Tools>References)
Dim objWrd As Word.Application
Set objWrd = GetWord
objWrd.Visible = True
objWrd.Quit
End Sub
Public Function GetWord() As Word.Application
Set GetWord = New Word.Application
End Function
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With