将表单标签作为参数传递给sub

时间:2016-01-18 17:20:41

标签: excel vba excel-vba

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

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

然而,当我运行它时,我的类型不匹配。

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

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

你可以这样做。

将其作为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

或正如罗里指出的那样。不要使用括号。

Private sub callit()
    setLabelForRefresh Me.Label1
End if