VBS: 2D Array - Spalte hinzufügen, tabellarische Ausgabe

amn.ssy

Erfahrenes Mitglied
Hallo,

leider hab' ich den bisherigen Code nicht dabei, so daß ich die beiden Probleme nur beschreiben kann.
Ausgangssituation: 2 zweidim. Arrays (arrWks(7,1) und arrTmp(7,1))

1. Frage: Wie muß eine Schleife konstruiert sein um beide Arrays in einer MsgBox Zeilenweise auszugeben?

Beispiel:
Visual Basic:
arrWks arrTmp
185 11 185 10
190 12 190 11
195 12 195 12
200 11 200 12
205 11 205 11
210 10 210 11
215 15 215 10
220 11 220 12

2. Frage: Wie bekomme ich die ResSpalte aus arrTmp hinter die ResSpalte von arrWks?
arrTmp soll im Anschluss leer sein.

Beispiel:
Visual Basic:
arrWks      arrTmp
185 11 10	
190 12 11	
195 12 12	
200 11 12	
205 11 11	
210 10 11	
215 15 10	
220 11 12

Da hat's doch wirklich nach langer Zeit plötzlich Klick gemacht und ich hab das endlich mal Funktionen kapiert :)
Daher hab ich auch sogleich bereits einiges in solche gepackt wie z.B arrTmp analog zu arrWks zu sortieren oder um die Arraygröße festzustellen.
Ebenfalls gibt es es Funktion für die Bildschirmausgabe der Arrays. Dies bekomme ich leider nur (etwas verwirrend) in dieser Form hin ...

Visual Basic:
185	190	195	200	205	210	215	220
11	12	12	11	11	10	15	11
185	190	195	200	205	210	215	220
10	11	12	12	11	11	10	12
weil ich 4 Schleifen hintereinander laufen lasse und in jeder Schliefe die Zeile in einer Variable speichere, die am Schluss zusammengebaut und zurückgegeben wird.

Ich freu mich wenn mich jemand auf die richtige Spur leitet.

Gruß
opiwahn

P.S. Wie ich gelesen habe gibt es unter VBS keine Möglichkeit dynamisch eine Zeile hinzuzufügen - oder doch?
Mir schwirrt da so eine Idee im Kopf herum:
a) gleich um x-Zeilen größer dimensinonieren und später mir Redim Preserve wieder entfernen oder
b) das Array zu transponieren, danach eine Spalte hinzufügen und im Anschluß wieder zurück transponieren.
Wäre a) oder b) möglich, hat jemand schon mal sowas erfolgreich versucht?
 
Zuletzt bearbeitet:

Yaslaw

n/a
Moderator
Bevor ich in die Details gehe.
Meinst du mit 2-Dimenszional das klassische, Array in Array oder das VB-Krüppeldings mit den mehreren Dimensionen in einem Array?
Visual Basic:
Dim a(0 to 1) AS Variant
a = array(array(1,2),array(2,3))
' oder
Dim a(0 to 1, 5 to 6) AS Integer
a(0,5) = 1
a(0,6) = 2
a(1,5) = 3
a(1,6) = 4

Zur Frage wegen Array dynamisch abzufüllen
http://wiki.yaslaw.info/dokuwiki/doku.php/vba/functions/array/index#pusharray
Visual Basic:
Dim a() as Integer
pushArray a, 1
pushArray a, 13
pushArray a ,32
 

Yaslaw

n/a
Moderator
Also die Krüpel-Version von VB

Wie wärs mit
Visual Basic:
    Dim row(1 To 4)   As Variant
    Dim idx     As Integer
    
    For idx = 0 To UBound(arrWks, 1)
        row(1) = arrWks(idx, 0)
        row(2) = arrWks(idx, 1)
        row(3) = arrWks(idx, 0)
        row(4) = arrTmp(idx, 1)
        '//Ausgabe der Zeile
        Debug.Print Join(row, vbTab)
    Next idx
 

Neue Beiträge