Wie man die Form der interne name in Excel
Wenn ein Bild eingefügt wird, in eine Excel-Arbeitsblatt mithilfe von Formen.AddPicture (...) - Methode, Excel-gibt es einen Namen "Bild 1", "Bild 2" usw. automatisch.
Dieser name kann verwendet werden, um eine Referenz auf das shape-Objekt in der Shapes-Auflistung wie Formen.Item("Picture 1"). Wenn der name geändert wird in Excel mit dem Name-Feld, es gibt zwei unterschiedliche Namen (oder einem von Ihnen ist eine Taste/Beschriftung), durch die das Shape-Objekt verwiesen werden kann. Also, wenn ich den Namen ändern auf "Goldfisch" ich kann mit diesen verweisen auf ein shape im Shapes-Auflistung:
Shapes.Item("Picture 1")
OR
Shapes.Item("MyPic")
Den Namen zugegriffen werden kann mit Form.Name-Eigenschaft in VBA-aber wie können wir den Zugriff auf die anderen Wert (Goldfisch), die nicht scheinen, um intern ändern?
AKTUALISIERT
Was ich versuche zu tun, ist link eine Zelle, um ein Bild in Excel. Ich halte die Bild Daten in der Zelle Kommentar. Dies sind die Szenarien:
- Wenn ich die Bild-name (externer name) - kopieren-einfügen die Struktur auf dem gleichen Arbeitsblatt duplizieren Sie den Namen und die Zelle wird auf die gleiche Struktur.
- Wenn ich weiterhin der interne name dann kopieren-einfügen in anderen Arbeitsblatt erstellen problem, da die gleichen internen Namen vorhanden sein können, auf einem anderen Arbeitsblatt in derselben Arbeitsmappe.
- Wenn ich die ID, ich werde nicht in der Lage sein, um die Bild-Referenz von es
Für mich immer der interne name ist wichtig. Ich habe die Form-Referenz, aber keine Idee, wie man die internen Namen, die aus dieser ref.
InformationsquelleAutor A9S6 | 2010-09-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sofort, nachdem Sie Sie Hinzugefügt haben, die Form in ein Arbeitsblatt (oSht) können Sie
oSht.Shapes(Osht.Shapes.count)
zu verweisen.Also
oSht.Shapes(osht.shapes.count).Name
geben Sie seinen Namen.Wenn Sie möchten, finden Sie den index, der die eine Form in der Shapes-Auflistung, und Sie kennen seinen Namen, dann müssen Sie eine Schleife durch
Shapes.Name
bis du es findest. Wenn Sie wissen, der Index, dann können Sie konstruieren die "Bild n" alternativer name, oder können Sie speichern die "Bild n", alternativer name. Sie können auch speichern Sie die ID-Eigenschaft der Form und verweisen Sie auf die Form, indem die Schleife durch die Formen Sammlungen, bis Sie dieShape.ID
Wenn der Benutzer bewegt die Form, um ein anderes Blatt und dann benennt es, gibt es keine Möglichkeit, sich zu identifizieren es als die ursprüngliche Form, weil der externe name, Alternative Namen, Formen-index und ID wird alles anders sein. Also, wenn dies ist ein problem in deinem Szenario würden Sie benötigen, zu prüfen, Schatten kopieren oder Blatt-Schutz.
Wenn ich eine Form in VBA den Rückgabewert von Formen.AddPicture(...) geben mir den Verweis auf Sie, so gibt es keine Notwendigkeit zu tun, ein Formen(Count) hier. Auch für ein neu erstelltes Objekt der internen und Anzeige-Namen werden die gleichen sein, also Form.Name wird Arbeit in dieser Zeit. Das problem ist, wie zu bekommen, dass die internen Namen durch die Form-Referenz zu einem späteren Zeitpunkt (user könnte sich geändert haben, den Anzeigenamen)
Wenn Sie einen gültigen Verweis auf ein shape-Objekt Shape.name geben Sie Ihren externen Namen.
Wenn Sie einen gültigen Verweis auf ein shape-Objekt Shape.name geben Sie Ihren aktuellen externen Namen, auch wenn der Benutzer Sie verändert. Wenn Sie wissen, den internen Namen (Bild n) dann können Sie auf das Objekt und externen Namen. Wenn Sie nicht haben entweder eine gültige Referenz oder den internen Namen und den Gebrauch gelöscht hat, Formen, bewegte Formen und änderte den Namen von Formen gibt es keine Möglichkeit zu finden, welche Form die ursprüngliche, die Sie wollen.
oder Sie können die Form.ID-Eigenschaft
InformationsquelleAutor Charles Williams