Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1644to1648
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Array Datensatz auf "" setzen

Array Datensatz auf "" setzen
12.09.2018 10:16:51
UweD
Hallo Profis
Ich habe eine große Tabelle mit ca 12000 Zeilen und 11 Spalten, in der ich per VBA Veränderungen vornehmen muss.
Da das ewig dauert,
hab ich das alles in ein Array übernommen (klappt)
auch das Vergleichen / Arbeiten innerhalb der Sätze klappt.
Jetzt möchte ich aber alle Felder in einem Satz auf LEER setzen.
Hab bisher wenig mit Array gearbeitet:
Geht das mit einem Befehl, oder muss ich alle 11 Felder einzeln (per Schleife) leeren?
Beispiel:
das Array hätte folgenden Inhalt

A1	B1	C1	D1	E1	F1	G1	H1	I1	J1	K1
A2	B2	C2	D2	E2	F2	G2	H2	I2	J2	K2
A3	B3	C3	D3	E3	F3	G3	H3	I3	J3	K3
A4	B4	C4	D4	E4	F4	G4	H4	I4	J4	K4
Jetzt will ich alle Felder in Satz 3 leeren
ARR(3) ="" klappt nicht
sowas in der Art Arr (3, 1 to 11)
Gruß UweD

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array Datensatz auf "" setzen
12.09.2018 10:21:40
Gerd
Hallo Uwe,
m.W. geht das nur per Schleife.
Gruß Gerd
AW: Array Datensatz auf "" setzen
12.09.2018 10:25:42
Daniel
Hi
nein, musst du per Schleife machen.
mir ist jetzt keine Mehtode bekannt, mit welcher du in einem 2-D-Array ganze Zeilen oder Spalten mit einem Befehl bearbeiten kannst.
Ist für die Performance kein Problem, Schleifen mit Arrays sind sehr schnell.
Gruß Daniel
AW: Array Datensatz auf "" setzen
12.09.2018 10:33:20
Daniel
wie gesagt, muss per Schleife gemacht werden.
wenn du sowas an mehreren Stellen im Code brauchst, kannst du dir dafür ja eine entsprechene Unterroutine erstellen, die du dann nur aufrufst:
dh diese Subroutine als eigenständiges Makro
Sub ArrayZeileBearbeiten(ByRef DeinArray, Zeile as Long, Wert)
Dim  Spalte as Long
for Spalte = Lbound(DeinArray, 2) to Ubound(DeinArray, 2)
DeinArray(Zeile, Spalte) = Wert
Next
End Sub
und in deinem Hauptcode reicht dann der Aufruf:
Call ArrayZeileBearbeiten(ARR, 3, "")
durch die Übergabe des Arrays mit byRef in die Unterroutine wird auch das Array in deinem Hauptprogramm bearbeitet.
Gruß Daniel
Anzeige
AW: Array Datensatz auf "" setzen
12.09.2018 10:40:58
Frank
Hallo Uwe,
was möchtest Du erreichen? Soll die gesamte »Zeile« aus dem Array entfernt werden oder sollen die einzelnen Felder alle auf "" gesetzt werden? Im letzteren Fall musst Du die Felder wohl in einer Schleife einzeln setzten:
For i = LBound(ARR(3)) to UBound(ARR(3))
ARR(3,i) = ""
next
Ich bin mir zwar nicht ganz sicher, aber eine komplette »Zeile« aus Deinem 2-dimensionalen Array zu löschen, geht glaube ich nicht. Du könntest das komplette Array in ein zweites kopieren und dabei die besagte Zeile auslassen.
Eine andere Möglichkeit wäre, statt eines 2-dimensionalen Arrays eine Collection zu erstellen, die dann 1-dimensionale Arrays für jeweils eine Zeile enthält. Bei Collections gibt es nämlich die Remove-Methode, mit der Du dann gezielt eines dieser Array löschen kannst.
VG Frank
Anzeige
AW: Array Datensatz auf "" setzen
12.09.2018 10:52:38
UweD
Hallo ihr 3
Vielen Dank für die Antworten.
hab es jetzt so gelöst und es klappt Bestens

'überflüssige Zeile leeren
For S = LBound(Arr, 2) To UBound(Arr, 2)
Arr(i, S) = Empty
Next

i ist dabei wieder Bestandteil eine anderen Schleife.
LG UweD
Noch ne Frage...
12.09.2018 11:31:55
UweD
Wie ist es dann mit "Satz kopieren"
Also Arr(4, 1 bis 11) soll den Inhalt von Tmp(1, 1 bis 11) erhalten.
geht das auf einen Schlag, oder auch nur wieder per Schleife
LG UweD
...wieder Schleife! (owT)
12.09.2018 11:34:51
EtoPHG

Danke, ich habs befürchtet owT
12.09.2018 11:38:59
UweD
FYI: 4 Sek anstelle 12 Min
12.09.2018 13:39:51
UweD
ich bin begeistert wie schnell das mit Arrays geht
LG UweD

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige