| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| | |
 | Schnell, effizient und günstig: Mit der Kisters 3DViewStation 3D Arbeits- und Reparaturanleitungen einfach erstellen und pflegen, eine Pressemitteilung
|
|
Autor
|
Thema: Übergabe an Private Sub (1180 mal gelesen)
|
Criollo Mitglied

 Beiträge: 42 Registriert: 07.11.2008
|
erstellt am: 22. Sep. 2011 08:12 <-- editieren / zitieren --> Unities abgeben:         
Hallo, bin gerade dabei ein einfaches Skript mit Benutzeroberfläche zu schreiben. Da ich sowas zum ersten Mal mache, bin ich da noch etwas wackelig unterwegs. Folgendes Problem: Beim Klick auf eine Schaltfläche, soll ein Listenfeld mit Werten gefüllt werden. Die Werte sollen aus einem Array kommen, den ich im Vorfeld schon mit Werten gefüllt habe. Der Code für den Schaltflächenklick sieht folgendermassen aus. Private Sub COM_Show_SNR_Click() Dim a As Variant For Each a In arr_snr Me.List_SNR.AddItem (a) Next End Sub Es kommt aber immer die Fehlermeldung dass die Typen unverträglich sind, und es wird die Zeile mit "for each" markiert. Irgendwie stehe ich da gerade auf dem Schlauch. Vielleicht kann mir da jemand weiterhelfen. Viele Grüsse Crio Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tiberius Mitglied
 
 Beiträge: 421 Registriert: 19.02.2002 SWX 2013 SP2 (unter anderen) Windows 7 Prof. 64 Bit Intel Xeon E5-2643 NVIDIA Quadro 4000 32 GB Ram
|
erstellt am: 22. Sep. 2011 08:24 <-- editieren / zitieren --> Unities abgeben:          Nur für Criollo
|
meisterlumpi Mitglied
 
 Beiträge: 118 Registriert: 15.04.2011 Intel Core2 Quad Q6600 2.40 GHz | 4 GB RAM | Win7x64
|
erstellt am: 22. Sep. 2011 08:30 <-- editieren / zitieren --> Unities abgeben:          Nur für Criollo
|
Criollo Mitglied

 Beiträge: 42 Registriert: 07.11.2008
|
erstellt am: 22. Sep. 2011 09:10 <-- editieren / zitieren --> Unities abgeben:         
Hallo, das mit "For each" ist mit den Arrays eigentlich kein Problem, da ich das im vorhergehenden Makrolauf schon verwendet habe. Also das läuft eigentlich. Der Array arr_snr() ist im vorhergehenden Code definiert. Private Sub UserForm_Initialize() Dim mydoc As Document Dim myroot As Product Dim mypart As Part Dim arr_snr() Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
meisterlumpi Mitglied
 
 Beiträge: 118 Registriert: 15.04.2011 Intel Core2 Quad Q6600 2.40 GHz | 4 GB RAM | Win7x64
|
erstellt am: 22. Sep. 2011 09:34 <-- editieren / zitieren --> Unities abgeben:          Nur für Criollo
Zitat: das mit "For each" ist mit den Arrays eigentlich kein Problem, da ich das im vorhergehenden Makrolauf schon verwendet habe.
- wieder was gelernt.. :-) wenn du 'arr_snr()' in der 'Sub UserForm_Initialize' deklarierst, ist das array auch nur in dieser sub gültig. Versuch mal 'arr_snr()' als public array ganz oben im modul zu deklarieren, noch vor der ersten function oder sub Code:
Public arr_snr()Private Sub UserForm_Initialize() Dim mydoc As Document Dim myroot As Product Dim mypart As Part '''Dim arr_snr() ' <- diese zeile muss dann weg .. .. End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Criollo Mitglied

 Beiträge: 42 Registriert: 07.11.2008
|
erstellt am: 22. Sep. 2011 09:50 <-- editieren / zitieren --> Unities abgeben:         
Hallo, jetzt funktioniert es. Es klappt allerdings nur wenn ich die Variable nicht als Public beschreibe (siehe Code) Option Explicit Dim arr_snr() Private Sub UserForm_Initialize() Sobald ich Public mache, kommt die Fehlermeldung - "Konstanten, Zeichenketten fester Länge, benutzerdefinierte Datenfelder und Declare-Anweisungen sind als Publicelemente von Objektmodulen nicht zugelaseen." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |