我正在尝试实例化一个对象并从函数返回它.我正在上课的是我创造的课程.但是,当我尝试将Object设置为从函数返回的内容时,我得到一个错误.我究竟做错了什么?
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
Run Code Online (Sandbox Code Playgroud)
然后在另一个功能......
Dim bmrk As Blah
Set bmrk = CreateBlah("Test", 1, Trim(AString))
Run Code Online (Sandbox Code Playgroud)
我也试过......
Dim bmrk As Object
Set bmrk = CreateBlah("Test", 1, Trim(AString))
Run Code Online (Sandbox Code Playgroud)
我是VBA的新手,谁能告诉我我做错了什么?
Oor*_*ang 12
每次分配对象时都需要使用set .这意味着设置返回值以及将返回值分配给变量时.后期限制示例:
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
Run Code Online (Sandbox Code Playgroud)
早期限制示例:
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
Run Code Online (Sandbox Code Playgroud)
我假设
Dim b As Blah
Set b = New Blah
Run Code Online (Sandbox Code Playgroud)
实际上应该阅读
Dim bkmrk As Blah
Set bkmrk = New Blah
Run Code Online (Sandbox Code Playgroud)
如果是这样,则您缺少 set 关键字。
Set CreateBlah = bkmrk
Run Code Online (Sandbox Code Playgroud)
一旦你解决了这个问题,那么你的消费代码的两个版本都应该可以工作,尽管前者更好,因为你强烈地输入了变量。
| 归档时间: |
|
| 查看次数: |
24473 次 |
| 最近记录: |