我想传递sourceform,我从中使用CallByName函数。不知何故,它在我发布它的方式不起作用。
Private Sub Command1_Click()
'CallByName Form1, "TestFkt", VbMethod, Nothing, Command1 '<--- works
CallByName Form1, "TestFkt", VbMethod, Me, Command1 '<--- Problem
End Sub
Public Function TestFkt(ParamArray myParams())
Dim oForm As Object
Set oForm = myParams(0)
' ...
End Function
vb6报告的错误是运行时错误450:“Falsche Anzahl an ArgumentenoderungültigeZuweisungzu einer Eigenschaft”。我认为第一个原因不是问题,因为上面的注释行有效。似乎更多的是,问题与关键字me有关。
有人有点想法吗?
答案 0 :(得分:3)
它不是CallByName
:
TestFkt Form1, Me
也无效,因为在使用Me
时无法通过ParamArray
。这是Me
的特殊情况,这是一种特殊情况。
解决方法:
Dim fMe As VB.Form: Set fMe = Me
CallByName Form1, "TestFkt", VbMethod, fMe, Command1