Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Arbeiten mit Arrays
#1
Guten Tag

und zwar habe ich hier kein Problem, sondern möchte eher verstehen/etwas lernen.
Ich habe einen Bereich, welchen ich in ein Array einlese.
....
z.B. Scripting.Dictionary 
hab auch was von ArrayList gehört/gelesen
Werte = Range("A2:E5")
....
So, nun habe ich diese Werte und kann sie mir anschauen(Lokalfenster), also Werte(1,1)(1,2)(1,3)....
Ich würde jetzt gerne zb sagen, wenn Werte (1,5) = 1 ist, dann lösch mir sozusagen die Zeile, also (1,1)(1,2)(1,3)(1,4)(1,5) und fahre fort...(2,1)(2,2)...
Geht sowas?

Nächste Frage. Kann ich aus einem Wertebereich 2 Listen bilden und diese mir dann ausgeben lassen? 
Also wir nehmen wieder unseren Bereich "Werte =" und sagen, ist Wert(1,5) = 1 dann speichere mir diesen in Liste X , steht da 2, dann in Liste Y. 
Brauche ich eventuell eine neue Prozedur mit ByVal? 

Vielen Dank :)
Antworten Top
#2
Hallo,

zu Deiner ersten Frage:

nach meinem Kenntnisstand kannst Du in einem 2 - dimensionalen Array keine Zeilen löschen. Dagegen kannst Du mit der Index Funktion einzelne Zeilen aus dem Array ausgeben lassen, hier z. B. die Zeile 5:

Code:
BeispielArray1=application.index(BeispielArray,5,0)
(Quelle: www.snb-vba.eu)
Alternativ kannst Du an Stelle der "5" eine Variable einsetzen und das Ganze durch eine Schleife laufen lassen.

zu Deiner 2 Frage: Du kannst jederzeit z. B. mit einer For - Next Schleife und einer If oder Select Case Abfrage nach einzelnen Werten im Array suchen, und diese dann an einer beliebigen Stelle wieder ausgeben lassen. Diese können dann dort jeweils wieder in einem neuen Array eingelesen bzw. abgespeichert werden.

Wenn Du eine Beispieldatei mit einigen Werten und Deinem Code in das Forum einstellst, gibt es sicherlich einige VBA - Spezialisten, die Dir dazu weitere Tipps geben können.

Grüße
NobX
Antworten Top
#3
Hallo,

da das Array 2-dimensional ist, brauchst du ein Ausgabearray und 2 Schleifen, welche die Vorgabe mit dem gefundenen Wert der zu vergleichenden Zelle es 1. Arrays auf Treffer prüft.
1. Schleife zählt bei jedem Treffer um 1 hoch.
Ausgabearray mit der hochgezählten Nummer die Zeilen dimensionieren (Redim).
Zweite Schleife übergibt jeden Treffer in die Zeile des Ausgabearrays. Dabei braucht es ein weiteres hochzählen bei Treffer.
Ich hoffe es hilft.

Gruß Uwe
Antworten Top
#4
How do I slice an array in Excel VBA? - Stack Overflow
VBA Arrays (cpearson.com)
Antworten Top
#5
mal noch ein kleines Beispiel

.xlsm   Einsen aus Array raus.xlsm (Größe: 17,22 KB / Downloads: 3)
Gruß Uwe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste