2016-10-28 2 views
1

Ich habe eine Userform mit dieser Funktion:Wie entferne ich ein Label in UserForm?

Public MyVariable As String 
Private Sub UserForm_Initialize() 
[...my code...] 
End Sub 

Zu meiner Userform aus einer Taste rufen ich tun:

Sub CallUserForm_Appro() 
    UserForm1.MyVariable = "Appro" 
    UserForm1.Show 
End Sub 

Sub CallUserForm_User() 
    UserForm1.MyVariable = "User" 
    UserForm1.Show 
End Sub 

Mein Ziel ist es „Label1“, wenn Benutzer klicken Sie auf die Schaltfläche entfernen CallUserForm_Appro() anrufen

Also habe ich versucht, in UserForm_Initialize() zu tun:

Public MyVariable As String 
Private Sub UserForm_Initialize() 

[...my code...] 
If MyVariable = "Appro" Then 
    UserForm1.Controls.Remove "Label1" 
End If 

End Sub 

Ich habe keinen Fehler, aber mein Label1 ist immer sichtbar. Diese

Antwort

1

ist, wie Sie die Sichtbarkeit des Etiketts auf false gesetzt:

UserForm1.label1.Visible = false 

Dann ist es nicht sichtbar sein soll, nicht mehr.

+0

ist. Thx, es funktioniert. Also, ich habe Ihren Code in CallUserForm_Appro() -Funktion – Ferfa

+0

@Ferfa, vielen Dank, einen schönen Freitag! :) – Vityata

1

Das Initialize-Ereignis tritt auf, bevor die Variable festgelegt wird (weil Sie auf keine Eigenschaft des Formulars zugreifen können, ohne dass es zuerst geladen wird).

Sie sollten stattdessen das Ereignis Activate verwenden, solange das Steuerelement zur Laufzeit hinzugefügt wird. Wenn es sich um eine Entwurfszeitsteuerung handelt, können Sie sie nicht löschen, sondern nur ausblenden. Alternativ können Sie das Formular nur zum Formular hinzufügen, wenn die Variable nicht auf "Appro"

+0

Thx für Ihre Erklärung – Ferfa

Verwandte Themen