Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: control array in VBA

control array in VBA
19.01.2004 23:36:05
markus
Hallo Leute,
Bin an ner kleinen Automation und stolpere grade ueber das nicht vorhanden sein von control arrays. Kann mir jemand nen tip geben, wie ich mich am schlausten durch 100 editboxen (txt_01, txt_02...) durchloope?
Was gibt es fuer Moeglichkeiten in reinem VBA?
Danke,
Markus

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: control array in VBA
19.01.2004 23:41:14
Ulf
wenn die TB durchlaufend nummeriert sind, Prinzip:
for t = 1 to 100
controls(txt & t)="Textbox" & t
next
Ulf
Quatsch Korrektur...
19.01.2004 23:42:05
Ulf
for t = 1 to 100
controls("txt" & t)= "Textbox" & t
next
Und wenn sie nicht durchlaufend numeriert sind:
19.01.2004 23:43:47
Boris
Hi Markus,

Private Sub UserForm_Initialize()
Dim ctl As Control
For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Then MsgBox ctl.Name
Next ctl
End Sub

Grüße Boris
Anzeige
Offtopic: Bei Berti ist noch was für Dich :-))
19.01.2004 23:54:22
Ramses
Hallo Boris
...viel Spass dabei.
Gruss Rainer
2 Minuten vor Mitternacht...
19.01.2004 23:58:50
Boris
Hi Rainer,
...und zudem 4 Gläser Rotwein - das krieg ich heute bestimmt nicht mehr hin...;-)
Werde das aber morgen mit der gebotenene Seriosität testen! ;-)
Grüße Boris
AW: Und wenn sie nicht durchlaufend numeriert sind:
20.01.2004 00:00:56
markus
genau sowas, Boris, nun bin ich aber am text der editbox interssiert?
Danke nochmals,
markus
PS: aus Ulfs Loesung werd i net schlau
Anzeige
Welche Editbox?
20.01.2004 00:04:50
Boris
Hi Markus,
...ich versteh´s nicht ganz...
Grüße Boris
AW: Und wenn sie nicht durchlaufend numeriert sind:
20.01.2004 00:05:11
markus
ok, habs, sorry... grins
war wohl au scho a bierle zuviel...
Danke,
Markus
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Control Arrays in VBA effektiv nutzen


Schritt-für-Schritt-Anleitung

Um ein Control Array in VBA zu erstellen und zu nutzen, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Erstelle eine UserForm in deiner Excel-Anwendung, die mehrere TextBoxen (EditBoxen) enthalten soll.

  2. Benenne die TextBoxen durchgängig, z.B. txt_01, txt_02, ..., txt_100.

  3. Verwende den folgenden Code, um über die TextBoxen zu iterieren:

    Private Sub UserForm_Initialize()
       Dim t As Integer
       For t = 1 To 100
           Me.Controls("txt_" & t).Value = "Textbox " & t
       Next t
    End Sub
  4. Für nicht durchlaufend numerierte Controlls kannst du den folgenden Code verwenden:

    Private Sub UserForm_Initialize()
       Dim ctl As Control
       For Each ctl In Me.Controls
           If TypeName(ctl) = "TextBox" Then
               MsgBox ctl.Name
           End If
       Next ctl
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Steuerelement nicht gefunden

    • Lösung: Stelle sicher, dass die Namen der Steuerelemente korrekt sind und die TextBoxen tatsächlich existieren.
  • Fehler: Typ nicht unterstützt

    • Lösung: Überprüfe den Typ des Steuerelements. Der Code erwartet, dass die Steuerelemente vom Typ TextBox sind.

Alternative Methoden

Wenn du keine durchlaufend nummerierten Steuerelemente verwendest, gibt es alternative Methoden, um mit Control Arrays in VBA zu arbeiten:

  1. Verwendung von Collections:

    • Du kannst eine Collection erstellen, die alle TextBoxen speichert und dann darauf zugreifen.
    Dim txtBoxes As New Collection
    txtBoxes.Add Me.txt_01
    txtBoxes.Add Me.txt_02
    ' usw.
  2. VBA Array:

    • Nutze ein VBA Array, um die Werte der TextBoxen zu speichern und zu verarbeiten.

Praktische Beispiele

Ein häufiges Anwendungsbeispiel für Control Arrays in VBA ist die Verarbeitung von Benutzereingaben aus mehreren TextBoxen. Hier ein einfaches Beispiel, das zeigt, wie du die Werte aller TextBoxen in ein Array überträgst:

Dim values(1 To 100) As String
Dim t As Integer

For t = 1 To 100
    values(t) = Me.Controls("txt_" & t).Value
Next t

Dieses Array kann dann für weitere Berechnungen oder für die Ausgabe in eine CSV-Datei verwendet werden.


Tipps für Profis

  • Verwende Option Explicit: Dies hilft dir, Fehler durch nicht deklarierte Variablen zu vermeiden.
  • Makros optimieren: Wenn du mit großen Datenmengen arbeitest, nutze Application.ScreenUpdating = False, um die Performance zu verbessern.
  • Debugging Tools: Nutze die integrierten Debugging-Tools in VBA, um Fehler schnell zu identifizieren.

FAQ: Häufige Fragen

1. Was ist ein Control Array in VBA?
Ein Control Array in VBA ist eine Sammlung von Steuerelementen, die ähnliche Eigenschaften haben und über einen gemeinsamen Namen angesprochen werden können.

2. Wie kann ich ein Array von Strings in VBA erstellen?
Du kannst ein Array von Strings einfach mit der folgenden Deklaration erstellen:

Dim myArray() As String

Anschließend kannst du Werte zuweisen, indem du die Indizes verwendest.

3. Kann ich auch andere Steuerelementtypen in einem Control Array verwenden?
Ja, du kannst auch andere Steuerelementtypen wie ComboBoxen oder ListBoxen in einem Control Array verwenden, solange du die Logik entsprechend anpasst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige