2017-02-26 42 views
0

我是VBA的新手,所以這應該是一個簡單的。我試圖調用一個帶有字符串的子。這個字符串需要放在Me之後。它應該看起來像Me.StringHere VB給我一個編譯錯誤,說沒有找到成員或數據方法。該字符串是一個實際的文本框控件,所以它應該在理論上工作。我剛剛開始嘗試調用潛艇,所以這可能是一件很簡單的事情,我不確定。這是代碼。在我之後放置字符串

Sub CueBannerActive(ControlToUpdate As String) 

'Activates the cue banner font settings 
    With Me.ControlToUpdate 
     .Font.Italic = True 
     .Font.Name = "Verdana" 
     .ForeColor = &H80000011 
    End With 

End Sub 'CueBannerActive(ControlToUpdate As String) 

下面是我如何調用它。

CueBannerActive "txbShipToNameOne" 
+2

'與Me.Controls(ControlToUpdate)' – Comintern

+0

真棒 - 謝謝!我知道這一定很簡單。 – Christopher

+0

您可能還想考慮是否將實際控制傳遞給子例程,而不僅僅是控件的名稱,可能是更好的實現方法。 – YowE3K

回答

1

首先,您需要更改對象的變量,你需要做的是,因爲VBA不理解「txbShipToNameOne」爲對象,所以你不能使用它,因爲我可以理解你正在使用一個表格,試圖改變標籤/對象。因此,子要像:

Sub CueBannerActive(ByVal ControlToUpdate As Object) 

'Activates the cue banner font settings 
    With ControlToUpdate 
     .Font.Italic = True 
     .Font.Name = "Verdana" 
     .ForeColor = &H80000011 
     .Caption = "I was here" 
    End With 

End Function 

我在一個按鈕叫吧,你可以看到如下:

Private Sub cmdButton_Click() 
    Call CueBannerActive(Me.txbShipToNameOne) 
End Sub 

Me.txbShipToNameOneis要改變對象,所以,如果你想重用很多標籤的代碼都可以做到。

相關問題