Weisen Sie einer dynamisch erstellten Schaltfläche in der Excel-Benutzerform eine VBA-Funktion zu

8

Ich erstelle Schaltflächen dynamisch in einem Excel-Benutzerformular mit dem folgenden Code:

%Vor%

Ich möchte eine Funktion zuweisen, die ausgeführt wird, wenn diese Schaltflächen angeklickt werden, aber ich finde keine direkte Möglichkeit, dies zu tun, da es keine Eigenschaft als Teil der Schaltfläche selbst gibt.

Gibt es eine Möglichkeit, dies unter Verwendung des obigen Idioms zu tun? Sollte ich die ganze Sache auf eine andere Art und Weise durchgehen?

    
notnot 19.02.2009, 19:24
quelle

5 Antworten

8

Sie müssen Code- / Event-Handler für jede Schaltfläche dynamisch erstellen.

Es dauert ein bisschen - siehe hier: Ссылка

Ein besserer Weg wäre es, eine Menge Buttons auf dem Formular (so viele wie Sie denken, dass Sie brauchen) im Voraus zu erstellen. Erstellen Sie auch den Event-Handler-Code. Machen Sie alle zunächst versteckt.

Wenn Sie Ihr Formular öffnen, können Sie die Schaltflächenbeschriftungen dynamisch ändern, sichtbar machen und verschieben. Der Ereigniscode, den Sie ursprünglich erstellt haben, wird wie erwartet mit den aktivierten Schaltflächen verknüpft.

    
DJ. 19.02.2009, 20:18
quelle
13

Ein Steuerelementereignis dynamisch in einem Excel-Formular hinzufügen; Sie müssen zuerst die Ereignisse in einem Klassenmodul hinzufügen. In meinem Beispiel füge ich ein Klassenmodul namens clsTEST mit einem Ereignis, btn_click ()

, hinzu %Vor%

Wie Sie sehen können, müssen Sie nur die Beschriftung der Schaltfläche festlegen, um festzulegen, wie oft Sie darauf geklickt haben. Als nächstes geben Sie im Formularcode Folgendes ein:

%Vor%

Wenn Sie das Formular aktivieren, wird eine Schaltfläche erstellt. Jedes Mal, wenn Sie auf die Schaltfläche klicken, ändert sich die Beschriftung.

    
598Bubblehead 31.10.2012 19:20
quelle
2

Der folgende Code sollte funktionieren

%Vor%     
Alex 05.10.2009 01:42
quelle
1
%Vor%     
Priyanka 06.05.2010 18:19
quelle
0

Ich habe mir das auch angesehen. Scheint, dass Sie ein Makro ausführen können, indem Sie die OnClick-Eigenschaft verwenden:

%Vor%

Dann erstellen Sie einen Makro mit diesem Namen, der die gewünschte Funktion ausführt. Das ist mein Hack, bis ich etwas besseres finde.

    
Matt Carr 09.06.2009 18:59
quelle

Tags und Links