Ich bin ein Neuling für VBA, also bitte vergib meine mangelnde Erfahrung.Assoziative VBA-Arrays (Index)
Ich verwende Excel VBA und versuchen herauszufinden, wie man ein Array indizieren. Ich importiere eine CSV-Datei und verwende die Split-Funktion. Ich muss auf die einzelnen Elemente der Elemente zugreifen, die in die Arrays aufgeteilt sind. Der beste Weg, zu erklären, was ich brauche, ist ein Beispiel, wie dies von Actionscript:
var a:Array = [];
a[1] = "Hello";
a[2] = "World";
(Except that what I have is a dynamic array created by the SPLIT function)
Where I could access "Hello" with the var a[1]
Hier ist, was ich bisher:
Sub getTxtfile()
FilePath = Application.GetOpenFilename _
(Title:="Please choose a file to open", _
FileFilter:="CSV Files *.csv* (*.csv*),")
Open FilePath For Input As #1
row_number = 0
Do Until EOF(1)
Line Input #1, LineFromFile
LineItems = Split(LineFromFile, ",")
'ActiveCell.Offset(row_number, 0).Value = LineItems(1)
'ActiveCell.Offset(row_number, 1).Value = LineItems(0)
row_number = row_number + 1
'Debug.Print LineItems(0) & ": " & LineItems(1)
Loop
Close #1
End Sub
Ich habe jetzt 2-Arrays (Lineitem (0) & Lineitem (1)) aber wie indexiere ich an dieser Stelle, was in ihnen steckt?
Vielen Dank für jede Hilfe, es wird sehr geschätzt.
Mike
Die CSV Ich verwende formatiert mit anderen Anwendungen Solidworks zu verwenden, Python, etc.) neben Excel. Ich muss nur auf bestimmte Elemente im Array zugreifen, um bestimmte Zellen zu füllen. So wie es ist ... Ich kann das gesamte Array in Spalten ziehen, aber das möchte ich nicht, nur die, die ich brauche. Hier ist ein Beispiel des CSV:
0, .200 p, 1,0709 q, 1,167 r, 1.177 s, 1,216 t, 1.570 u, v 1,5843 , 1,6883 w, 1,9079 e , .2645
Was ich tun möchte, ist der Buchstabe im ersten Element verweisen und das zweite Element in einer bestimmten Zelle eingefügt: Referenz "t" durch einen Index und "1.570" eingefügt haben.
Die Elemente in meinen Arrays sind LineItems (0) und LineItems (1). Im Idealfall versuche ich, jedes indizierte Element in einem Element als LineItems (1) (a)/LineItems (1-a) oder etwas Ähnliches zu referenzieren.
Sie bereits ein Array mit 2 Einträgen haben. Um zu sehen, was drin ist, können Sie etwas wie Debug.Print LineItems (0) für das erste Element oder (1) für das zweite tun. Sie können Objekte mit einer For-Schleife iterieren, wie zum Beispiel: 'Für i = LBound (LineItems) zu UBound (LineItems)' –
Sie haben nicht 2 Arrays - Sie haben * ein * Array mit zwei * Elementen *. – Comintern
In VBA gibt es keine assoziativen Arrays ... Alle Indizes sind numerisch. – salih0vicX