将表单标签作为参数传递给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
相关问题