makro mit zwei feldern

02/12/2008 - 01:09 von Ernst Tremel | Report spam
Hallo Experten,

Besteht die Möglichkeit eine Reihe von Zahlen (Normal, Hex etc)
z.B. 4, 5, 7, 78, 80
einer Reihe von String$
z,b, "a", "we", "s ", "haf", " d"
so zuzuordnen,
dass z.B. folgendes entsteht:
x(1) = 4; y(1) = "a"
x(2) = 5; y(2) = "we"
x(3) = 7; y(3) = "s "
x(4) = 78; y(4) = "haf"
x(5) = 80; y(5) = " d"
?
Und zwar so, dass man die x(); y() eingeben kann - ohne vorher zu wissen,
wieviele Zahlen bzw String$ es sind?

Für Hilfe bin ich dankbar. Doch ich habe nur sehr geringe Erfahrung, Makros
zu erstellen.

Gruß
Ernst
 

Lesen sie die antworten

#1 Thomas Gahler
02/12/2008 - 14:58 | Warnen spam
Hallo Ernst


Und zwar so, dass man die x(); y() eingeben kann - ohne vorher zu wissen,
wieviele Zahlen bzw String$ es sind?


Die Eingabe ist fast so wie du es dir vorstellst.

Ich packe das jeweisl so an:


Durch die Verwendung des Type bust du absolut frei. Wenn eines Tages ein
drittes Attributt dazu kommt, dann musst du nur den Type erweiteren und alls
funktioniert bereits.

Redim Preserve benötigts du um das Array zu erweitern und die alten Werte
bei zu behalten.

Mit LBound() und UBound() kannst du das Array dynamisch durchforsten.


' - - - - -
Option Explicit

Type TMeinfeld
intZahl As Integer
strText As String
End Type

Sub Demo()
Dim aMeinArray() As TMeinfeld
Dim i As Integer

ReDim Preserve aMeinArray(0)
aMeinArray(0).intZahl = 1
aMeinArray(0).strText = "A"

ReDim Preserve aMeinArray(2)
aMeinArray(1).intZahl = 12
aMeinArray(1).strText = "ABBB"
aMeinArray(2).intZahl = 255
aMeinArray(2).strText = "Xc"

For i = LBound(aMeinArray) To UBound(aMeinArray)
MsgBox aMeinArray(i).intZahl & vbCr & _
aMeinArray(i).strText
Next i
End Sub

' - - - - -


Hilft dir das weiter?




Thomas Gahler
MVP für WordVBA
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP3), Office XP (SP3)

Ähnliche fragen