将表单标签作为parameter passing给sub

我有一个函数旨在提取表单中的标签的一部分。

Public Sub setLabelForRefresh(lbl As Label) Dim i As Integer i = 0 'InStr(1, lbl.Caption, "de") Debug.Print i End Sub Public Sub callit() setLabelForRefresh (frmMain.lblBalancete) End Sub 

但是,当我运行它时,我得到types不匹配。

我尝试了MSForms.Label并将它传递给ByVal和ByRef。

有任何想法吗?

你可以这样做。

接受它作为MSForms.Label

 Private Sub setLabelForRefresh(ByRef lbl As MSForms.Label) MsgBox (lbl.name) MsgBox (lbl.Caption) End Sub 

Call你,并把它传递给标签。

 Private sub callit() Call setLabelForRefresh(Me.Label1) End if 

或者像Rory指出的那样。 不要使用括号。

 Private sub callit() setLabelForRefresh Me.Label1 End if