Herstellung von Formen unsichtbar/sichtbar in excel über VBA
Ich bin mit diesem problem für die letzten paar Stunden und ich würde wirklich zu schätzen einige helfen.
Im Grunde, ich möchte in der Lage sich zu verstecken/einblenden von Formen abhängig von Auswahl, die ein Benutzer macht über ein userform. Ich habe gebrochen, das problem in ein sehr einfaches Beispiel. Wenn ich einfügen eine Form namens "oval 1" in ein Blatt und führen Sie den code:
Sub hideshape()
With ActiveSheet
.Shapes("Oval 1").Select
With Selection
.Visible = False
End With
End With
End Sub
die Form verschwindet, aber wenn ich diesen code ausführen
Sub unhideshape()
With ActiveSheet
.Shapes("Oval 1").Select
With Selection
.Visible = True
End With
End With
End Sub
Bekomme ich die Fehlermeldung "der Angeforderte Formen sind gesperrt für die Auswahl"
Die Arbeitsmappe ist nicht geschützt, und ich habe versucht, die un-Inlett verschlossen und verriegelt text auf die Form-Eigenschaften.
Irgendwelche Ideen was verursacht diese.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht
Select
ein verstecktes Objekt. Jedoch, Sie brauchen nicht zu verwendenSelect
überhaupt, und es ist in der Regel nicht empfohlen. Versuchen Sie es einfach:Ich problem mit diesem code(Oval = Typ 9, aus MsoAutoShapeType Enumeration (Office)):
Wenn "Type = 9" ist falsch, Sie können finden Sie heraus, - Typ Sie Ihre Form mit code in Unmittelbaren - Fenster (Strg+G im VBA -):
aus: extendoffice.com
Ich Verstecke Formen basierend auf Ihren Namen, da einige Formen, die ich nicht verstecken will. Ich verwende dieses format:
Sheet1.Shapes.Range(Array("COtxtBox1")).Visible = msoTrue
Namen von Ihrer Form oder Formen geht in das array
wenn es nur 1 Form, die Sie konnte einfach:
Sheet1.Shapes.range("COtxtBox1").Visible = True
Fand ich, dass die "mso" Teil ist nicht notwendig, die True oder False-Anweisung