Ich habe es mit einem großen Datensatz zu tun, in dem jede dritte Spalte Werte enthält, für die ich eine Funktion ausführen muss, die den Wert 1 hat, wenn sie positiv ist -1 wenn es negativ ist. Das Schreiben der Funktion selbst ist kein Problem, aber die Dimensionen der Datenmatrix sind groß und die Spalten sind nicht gleich lang. Daher müsste ich in der Lage sein, einen Code zu schreiben, der die Spalten durchläuft, die Aufgabe ausführt, und die Ergebnisse in einer anderen Matrix mit der gleichen Anzahl von Spalten und Zeilen derselben Länge speichert. Um konkreter, ein Beispiel des Datensatzes, mit denen ich zu tun und was ich will, erreichen:Looping einer Funktion über Spalten mit unterschiedlicher Anzahl von Zeilen in VBA
x1;x2;x3;x4
1;-1;2;4
-5;1;2;-1
1; ;2;1
3; ; ;-4
5; ; ;
6; ; ;
und übertragen diese in:
y1;y2;y3;y4
1;-1;1;1
-1;1;1;-1
1; ;1;1
1; ; ;-1
1; ; ;
1; ; ;
x und Bedürfnis y auf der gleichen Reihe zu sein .
Vielen Dank im Voraus!
EDIT: In Wirklichkeit, was mit ich zu tun habe ist etwas, das mehr wie folgt aussieht:
Timestamp Last Trade Volume Timestamp Last Trade Volume Timestamp Last Trade Volume Timestamp Last Trade Volume
4.1.2016 13:34 3.12 3300 4.1.2016 13:34 7.82 100 4.1.2016 13:34 4.58 3000 4.1.2016 13:35 4.59 #N/A
4.1.2016 13:34 3.12 600 4.1.2016 13:34 7.83 300 4.1.2016 13:34 4.58 5750 4.1.2016 13:34 4.61 1000
4.1.2016 13:34 3.12 1000 4.1.2016 13:34 7.85 200 4.1.2016 13:34 4.59 300 4.1.2016 13:34 4.61 9500
4.1.2016 13:34 3.12 800 4.1.2016 13:34 7.85 500 4.1.2016 13:34 4.59 2000 4.1.2016 13:34 4.6 2200
4.1.2016 13:34 3.12 1200 4.1.2016 13:34 7.85 1700 4.1.2016 13:34 4.59 1000 4.1.2016 13:34 4.6 1200
4.1.2016 13:34 3.12 400 4.1.2016 13:34 7.85 100 4.1.2016 13:34 4.59 950 4.1.2016 13:33 4.6 500
4.1.2016 13:34 3.12 600 4.1.2016 13:34 7.85 200 4.1.2016 13:34 4.59 100 4.1.2016 13:33 4.6 2000
4.1.2016 13:34 3.11 4500 4.1.2016 13:34 7.85 1800 4.1.2016 13:34 4.59 750 4.1.2016 13:33 4.61 7500
4.1.2016 13:34 3.11 300 4.1.2016 13:34 7.82 2000 4.1.2016 13:34 4.58 500 4.1.2016 13:33 4.59 1400
4.1.2016 13:34 3.11 3700 4.1.2016 13:34 7.83 1000 4.1.2016 13:34 4.59 2000 4.1.2016 13:33 4.59 11000
Abgesehen davon, dass die Reihen sind nicht gleich lang, ich habe mehr als 300 Spalten und die längsten Reihen über 100.000+ lang. Ich muss in der Lage sein, dieses Ding nur über die letzten Spalten laufen zu lassen, ich habe einen anderen Code, der über die Volume-Spalte läuft. Ich bin völlig in Ordnung mit einer Lösung, die mir erlaubt, eine Zelle einschließlich der Formel für eine Spalte mit entsprechender Länge einfügen, aber Einfügen des Codes über das gesamte Array ist nicht machbar, weil es das gesamte Excel zum Absturz bringen wird, dh ich muss in der Lage sein um die Zellen wegzulassen, die keine Werte haben, bilden die Schleife.
Was haben Sie bis jetzt programmiert? Bitte fügen Sie Ihrer Frage Ihren VBA-Code hinzu. Ich wäre besonders daran interessiert, die Funktion zu sehen, die kein Problem darstellt. – Ralph
Sie sagten "jede dritte Spalte", aber die Beispiele, die Sie gaben, scheinen auf jede Spalte zu wirken. wie ist das? – user3598756
Hinzugefügt ein Beispiel der tatsächlichen Datei. Danke für die Klärung. – Ana