Steuerelemente löschen

13/05/2008 - 19:30 von HelmutMit | Report spam
Hallo zusammen
In einer Userform haben sich im Laufe der Zeit Steuerelemente
angesammelt, die ich nur sehe, wenn ich mir die Steuerelemente
auflisten lasse. Dabei handelt es sich vermutlich um "Leichen".
Ich versuche nun, diese Leichen zu löschen:
For Each ctl In userform1.Controls
If Left(ctl.Name, 5) = "Label" Then
ctl.Delete
End If
Next ctl
Bei der Codezeile ctl.delete kommt Laufzeitfehler 438: Objekt
unterstützt Eigenschaft oder Methode nicht. Auch cancel anstelle
delete wird nicht akzeptiert.
Wer weiß weiter?
Gruß Helmut
 

Lesen sie die antworten

#1 stefan onken
13/05/2008 - 20:24 | Warnen spam
On 13 Mai, 19:30, HelmutMit wrote:
Hallo zusammen
In einer Userform haben sich im Laufe der Zeit Steuerelemente
angesammelt, die ich nur sehe, wenn ich mir die Steuerelemente
auflisten lasse. Dabei handelt es sich vermutlich um "Leichen".
Ich versuche nun, diese Leichen zu löschen:
For Each ctl In userform1.Controls
    If Left(ctl.Name, 5) = "Label" Then
    ctl.Delete
    End If
Next ctl
Bei der Codezeile ctl.delete kommt Laufzeitfehler 438: Objekt
unterstützt Eigenschaft oder Methode nicht. Auch cancel anstelle
delete wird nicht akzeptiert.
Wer weiß weiter?
Gruß Helmut



hallo Helmut,
soweit mir bekannt:
löschen kann man ein Control mit
Userform1.Controls.Remove controlname
in der Schleife dann

For Each ctl In userform1.Controls
If Left(ctl.Name, 5) = "Label" Then
Userform1.Controls.Remove ctl.Name
End If
Next ctl

das geht aber nur, wenn die Controls per VBA erzeugt wurden
UserForm1.Controls.Add("Forms.Label.1")
bei von Hand erstellten Controls kommt der Laufzeitfehler 444
"Steuerelemente können nicht gelöscht werden".

Du könntest Left und Top der Controls per VBA àndern unf ggfls noch
die Caption, löschen musst du die Controls dann aber von Hand.

Gruß
stefan

Ähnliche fragen