VBA - Get Ausgewählten Wert einer Combobox
Habe ich Tausende von Zellen in einem Excel-Arbeitsblatt, die ComboBoxes. Der Benutzer wählt nach dem Zufallsprinzip, und füllen Sie es.
Wie bekomme ich die ausgewählten ComboBox-Wert? Gibt es eine Möglichkeit zum auslösen einer Funktion (d.h. ein Ereignis-handler), wenn die ComboxBoxes ausgewählt wurde?
- meinst du Sie haben "validation" - option in den Zellen?? nicht eine echte combobox, die einen Form - /form-Objekt...
- diese Frage muss wirklich Klarstellung 🙂 Wenn OP hat "Tausende" von comboboxes, wird er brauchen, Tausende von Ereignis-Handlern. Ansonsten, wenn Sie nur zur überprüfung die option, eine
Worksheet_Change
handler wird den trick tun. - nachdem alle... du hast Recht 🙂 Also, ich denke, es gibt bereits Antwort auf die Frage in Ihrem Kommentar und unten (von @user20623626)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie Umgang mit Daten Validierung von Listen, können Sie mit dem Worksheet_Change-Ereignis. Klicken Sie rechts auf das Blatt mit der Datenüberprüfung und wählen Sie " Code Anzeigen. Geben Sie dann in diesem:
Wenn Sie den Umgang mit ActiveX-comboboxes, es ist ein wenig komplizierter. Müssen Sie erstellen eine benutzerdefinierte Klasse Modul, um hook up die Ereignisse. Zunächst erstellen Sie ein Klassenmodul mit dem Namen CComboEvent und fügen Sie diesen code in es.
Als Nächstes erstellen Sie einen anderen Klassenmodul mit dem Namen CComboEvents. Diese halten alle unsere CComboEvent Instanzen und halten Sie Sie in Rahmen. Fügen Sie diesen code in CComboEvents.
Schließlich erstellen Sie eine standard-Modul (kein Klassenmodul). Sie benötigen code, um alle deine comboboxes in der Klasse Module. Sie könnten dies in eine Auto_Open-Prozedur, so es geschieht, wenn die Arbeitsmappe geöffnet wird, aber das ist bis zu Ihnen.
Brauchst du eine Public-variable für eine Instanz von CComboEvents. Öffentlich zu machen, wird kepp es, und alle seine Kinder in scope. Sie müssen Sie im Umfang so, dass die Ereignisse ausgelöst werden. In der Prozedur, die in einer Schleife durch alle comboboxes, die Schaffung einer neuen CComboEvent-Instanz für jeden, und hinzufügen, dass zu CComboEvents.
Nun, wenn eine combobox geändert wird, wird das Ereignis ausgelöst wird und in diesem Beispiel, wird eine Meldung zeigen.
Sehen Sie ein Beispiel, bei https://www.dropbox.com/s/sfj4kyzolfy03qe/ComboboxEvents.xlsm
Können Sie die unten change-Ereignis wird ausgelöst, wenn die combobox den Wert ändern.
Außerdem können Sie den ausgewählten Wert mit unten
Vielleicht sind Sie in der Lage, um die Ereignishandler programmgesteuert, mit so etwas wie (pseudocode)
Aber ich weiß nicht, die syntax für die Verwirklichung dieses in VB/VBA, oder, wenn überhaupt möglich ist.