Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
968to972
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
968to972
968to972
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Variablennamen als gepatchte Strings?

Variablennamen als gepatchte Strings?
Werner

Hallo!
Ich würde gern Namen von einander analogen Variablen als String zusammensetzen. Wenn ich z. B. eine Tabelle mit 50 Spalten habe, kann ich die Spaltentitel aus Spalte 1 mit einer Schleife auslesen, etwa so:

Sub Auslesen()
Dim i As Integer
Do With Application
For i = 1 To 50
spalErsteSpalte = .Match ("ErsteSpalte", Rows(1), 0)
spalZweiteSpalte = .Match ("ZweiteSpalte", Rows(1), 0)
Next i
End With
End Sub


(Denn Hinweis auf "Match" verdanke ich Rudi Maintaire.)
Wenn ich das Programm so schreibe, muss ich fünfzig Spaltenvariabeln (hier durch das Präfix
"spal" gekennzeichnet) ausprogrammieren, eine ziemliche Arbeit.
Kann man sich stattdessen nicht auch Variablennamen als Textstrings so zusammensetzen wie
die Namen von Controls? Bei Controls geht das wie folgt:


Sub Zusammen()
For i = 1 To 10
Userform1.Controls("Steuerelem" & CStr(i) = "ab" & CStr(i)
Next i
End Sub


(Diesen Hinweis verdanke ich Kurt.)
Die Namen der Controls müssen dazu durchnumeriert sein, z.B. "Steuerelem1", "Steuerelem2" usw.
Wenn das auch bei Variablen möglich ist, kann man in solchen F'llen wie dem
beschriebenen einige Programmierarbeit sparen.
Bin mal gespannt, welche Möglichkeiten noch in Excel verborgen liegen!
Grüße! Werner

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Variablennamen als gepatchte Strings?
22.04.2008 10:08:00
Rudi
Hallo,
das geht nicht.
nimm ein Array.

dim lngSpaltenNr(1 to 50)
dim SpaltenARRAY
spaltenARRAY=Array("","ErsteSpalte","ZweiteSpalte","DritteSpalte") 'etc
For i=1 to 50
lngspaltennr(i)=Application.Match(SpaltenARRAY(i),Rows(1),0)
Next


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Variablennamen als gepatchte Strings?
Werner
Hallo Rudi,
Habe jetzt schon wiederholt deine Hilfe in Anspruch genommen. Vielen herzlichen Dank!
ein toller Code. Ich bin manchmal einfach baff, wie einfach etwas geht, wenn man weiß, wie es geht.
Herzlichen Dank für diesen Vorschlag. Ich werde mich kuenftig immer auch mal bei den Arrays umsehen,
wenn es gleichartige Daten zu verarbeiten gilt.
Eure Antworten kommen auch immer sehr prompt, bin sehr positiv überrascht! Werner

Anzeige
AW: Variablennamen als gepatchte Strings?
22.04.2008 10:24:00
Rudi
Hallo,
warum vergibst du nicht einfach Namen für die Spalten?
Spalten markieren-Einfügen-Namen-erstellen-aus oberster Zeile
Wenn du die Spalten verschiebst, verschieben sich die Namen auch.
Range("ErsteSpalte").cells(1) ist dann deine erste Datenzelle in der ersten Spalte.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Spaltenbezeichnungen als Namen
Werner
Hallo Rudi,
deine Hinweise werden immer besser, und auf die einfachste Möglichkeit kommt man häufig am letzten. Da bin ich wirklich baff!
Zum Glück habe ich das Programm noch nicht geändert. Natürlich ist ein Name offenbar der einfachste Weg, besser noch als die Arraylösung, bei der man ein mehrzeiliges Array in geschweiften Klammern programmieren müsste und, immer wenn man eine Spalte einfügt oder streicht, Einträge aus diesem Array im Editor einfügen oder streichen muss.
Ich werde also künftig eine Herde von Namenskühen statt von Arraykühen hüten, das ist einfacher.
Vielen Dank für diesen sehr interessanten Vorschlag! Werner
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige