Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1880to1884
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

2D Array an 2D Array anhängen?

2D Array an 2D Array anhängen?
28.04.2022 16:48:13
Marc
Hallo liebe Excel-Pros,
ich bin auf eine Frage gestossen, die nicht wirklich wichtig für ein Projekt ist, mich aber doch interessiert. Vielleicht könnt Ihr mir hier weiterhelfen?
Ich würde gerne ein 2D-Array an ein 2. 2D-Array mit gleicher 2. Dimensionierung anhängen (analog bei einem Excelbereich einen 2. Bereich mit identischer Spaltenanzahl unten anfügen, ich hoffe, so ist es klar formuliert). Dabei möchte ich wenn möglich die folgenden Vorgaben einhalten:
- Exakt gleiche Reihenfolge
- Falls ein gleicher Eintrag im 1. Array bereits existiert, soll er ausgelassen werden
- Ich möchte die 2 Arrays nicht in einem Tabellenblatt zwischenspeichern
Hintergrund: Ich habe in einer Anwendung ein Formular mit 2 Listboxen. Listbox 1 enthält Einträge aus einer Suche, Listbox 2 die bereits ausgewählten Einträge. Es wird dabei nur jeweils die "1. Spalte" der 2. Dimension angezeigt, über die restlichen "Spalten" der 2. Dimension werden so "versteckte" Attribute für die weitere Verarbeitung übergeben. Über Schaltflächen "Hinzufügen" werden die Einträge der Listbox 1 in der Listbox 2 unter den bestehenden Einträgen hinzugefügt, Doppeleinträge werden dabei übersprungen. Das funktioniert auch einwandfrei mittels 2 For-Schleifen und Listbox.AddItem. Anbei zur Info der funktionierende Code:

Private Sub cmdAddAll_Click()
Dim lIndex          As Integer
Dim lIndex2         As Integer
Dim varZaehler      As Integer
Dim varExist        As Boolean
varZaehler = 0
For lIndex2 = 0 To ListBoxLieferanten.ListCount - 1
varExist = False
For lIndex = 0 To ListBoxAuswahl.ListCount - 1
If Val(ListBoxAuswahl.List(lIndex, 9)) = Val(ListBoxLieferanten.List(lIndex2, 9)) Then varExist = True
Next lIndex
If varExist = False Then
ListBoxAuswahl.AddItem
ListBoxAuswahl.List(lIndex, 0) = ListBoxLieferanten.List(lIndex2, 0)
ListBoxAuswahl.List(lIndex, 1) = ListBoxLieferanten.List(lIndex2, 1)
ListBoxAuswahl.List(lIndex, 2) = ListBoxLieferanten.List(lIndex2, 2)
ListBoxAuswahl.List(lIndex, 3) = ListBoxLieferanten.List(lIndex2, 3)
ListBoxAuswahl.List(lIndex, 4) = ListBoxLieferanten.List(lIndex2, 4)
ListBoxAuswahl.List(lIndex, 5) = ListBoxLieferanten.List(lIndex2, 5)
ListBoxAuswahl.List(lIndex, 6) = ListBoxLieferanten.List(lIndex2, 6)
ListBoxAuswahl.List(lIndex, 7) = ListBoxLieferanten.List(lIndex2, 7)
ListBoxAuswahl.List(lIndex, 8) = ListBoxLieferanten.List(lIndex2, 8)
ListBoxAuswahl.List(lIndex, 9) = ListBoxLieferanten.List(lIndex2, 9)   ' ID
Else
varZaehler = varZaehler + 1
End If
Next lIndex2
End Sub
Mein Luxus-Problem: Wenn ohne Selektionskriterien einfach alles übernommen wird, dann können dies auch mal 10.000 Einträge sein, die übernommen werden. Und dann ist das laaaangsam;-). Ich versuche das irgendwie zu beschleunigen. Eine Idee war nun, anstelle mit den Listbox-Inhalten einfach mit 2 Arrays zu arbeiten. Die Pros werden mir wahrscheinlich sagen, dass dies keine Verbesserung bringen würde, das ist mir klar (oder?). Aber die theoretische Idee hat mich nun gepackt.
Meine Fragen: Gehe ich über ein temporäres 3. Array? Aber wie dimensioniere ich da die 1. Dimension wenn ja Doubletten rausfallen sollen? Loope ich vorher einmal durch und zähle die Doubletten?
Hat einer von Euch eine coole Idee? Danke im Voraus für Eure Ideen!
Lg
Marc

30
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2D Array an 2D Array anhängen?
28.04.2022 17:33:33
Oberschlumpf
Hi Marc,
eine funktionierende Bsp-Datei mit Bsp-Daten mit Userform mit Listboxen könnte vielleicht helfen.
So rein theoretisch fällt mir aber schon mal dieser Codeteil auf:

For lIndex = 0 To ListBoxAuswahl.ListCount - 1
If Val(ListBoxAuswahl.List(lIndex, 9)) = Val(ListBoxLieferanten.List(lIndex2, 9)) Then varExist = True
Next lIndex
Angenommen, .ListCount-1 ist schon z Bsp 7000.
Wenn jetzt schon bei lIndex = 5 varExist = True wird, werden die übrigen 6995 Einträge weiter geprüft - obwohl nicht mehr erforderlich
Deswegen würde ich diesen Code so ändern:

For lIndex = 0 To ListBoxAuswahl.ListCount - 1
If Val(ListBoxAuswahl.List(lIndex, 9)) = Val(ListBoxLieferanten.List(lIndex2, 9)) Then
varExist = True
Exit For
End If
Next lIndex
Wird jetzt bei lIndex = 5 varExist = True, dann wird For/Next sofort abgebrochen, und weitere (unnötige) 6995 Einträge werden - nicht - mehr kontrolliert.
Bei vielen True-Treffern zu Beginn einer langen Liste kann das die Ablaufgeschwindigkeit schon erheblich steigern.
Vielleicht hilft das ja schon?
Ciao
Thorsten
Anzeige
AW: 2D Array an 2D Array anhängen?
29.04.2022 08:11:43
Marc
Hallo Thorsten,
danke für Deine Rückmeldung. Und ja, Du hast natürlich komplett recht, und peinlicherweise habe ich das so bei anderen ähnlichen Fällen selber bereits mehrfach umgesetzt. Kleiner Tweak mit möglicherweise grosser Wirkung (z.B. wenn Du irrtümlicherweise 2x auf Hinzufügen drückst...), ist bereits so korrigiert.
Ich wünsche Dir einen guten Start ins Weekend
Marc
AW: 2D Array an 2D Array anhängen?
28.04.2022 17:49:27
Nepumuk
Hallo Marc,
teste mal:

Private Sub cmdAddAll_Click()
Dim objDictionary As Object
Dim avntArray1 As Variant, avntArray2 As Variant, avntArray3 As Variant
Dim ialngIndex1 As Long, ialngIndex2 As Long, ialngIndex3 As Long
Set objDictionary = CreateObject(Class:="Scripting.Dictionary")
avntArray1 = ListBoxAuswahl.List
avntArray2 = ListBoxLieferanten.List
ReDim avntArray3(LBound(avntArray1, 2) To UBound(avntArray1, 2), _
LBound(avntArray1, 1) To UBound(avntArray1, 1) + UBound(avntArray2, 1))
For ialngIndex1 = LBound(avntArray1, 1) To UBound(avntArray1, 1)
objDictionary.Item(avntArray1(ialngIndex1, 9)) = vbNullString
For ialngIndex2 = LBound(avntArray1, 2) To UBound(avntArray1, 2)
avntArray3(ialngIndex2, ialngIndex1) = avntArray1(ialngIndex1, ialngIndex2)
Next
Next
ialngIndex3 = UBound(avntArray1, 1)
For ialngIndex1 = LBound(avntArray2, 1) To UBound(avntArray2, 1)
If Not objDictionary.Exists(avntArray2(ialngIndex1, 9)) Then
ialngIndex3 = ialngIndex3 + 1
For ialngIndex2 = LBound(avntArray2, 2) To UBound(avntArray2, 2)
avntArray3(ialngIndex2, ialngIndex3) = avntArray2(ialngIndex1, ialngIndex2)
Next
End If
Next
ReDim Preserve avntArray3(LBound(avntArray3, 1) To UBound(avntArray3, 1), LBound(avntArray3, 2) To ialngIndex3)
ListBoxAuswahl.Column = avntArray3
Set objDictionary = Nothing
End Sub
Gruß
Nepumuk
Anzeige
AW: 2D Array an 2D Array anhängen?
29.04.2022 10:15:26
Marc
Hallo Nepumuk,
puah, Leute wie Du sind der Grund, weshalb ich mich nie als Pro werde einstufen können;-). Ich gehe fest davon aus, dass Deine Lösung funktioniert, werde aber wahrscheinlich das Weekend damit verbringen, die Wirkung Deiner Funktion versuchen zu verstehen. Vor Dictionary's bin ich immer irgendwie zurückgeschreckt, aber Dein Vorschlag ist so sauber strukturiert, dass ich es hoffentlich nachvollziehen kann. Vielen Dank auf jeden Fall!
Ich wünsche Dir ein schönes Weekend.
Marc
AW: 2D Array an 2D Array anhängen?
28.04.2022 18:36:23
Yal
Hallo Marc,
ich denke wie Nepumuk, dass eine Dictionary die Lösung ist, kann aber in seinem Code das original nicht wieder entdecken (und auch weil ich meine Lösung parallel aufgebuat habe. Wäre blöd diese wegzuschmeissen).
(Bin ein Freund von kurzen Variablennamen. Es sind ja eh keine Millionen-Codezeilen-Projekte)

Private Sub cmdAddAll_Click()
Dim i As Integer
Dim j As Integer
Dim Dic As Object
Dim Zaehler As Integer
'Dictionary Auswahl basierend aufbauen
Set Dic = CreateObject("Scripting.Dictionary")
With ListBoxAuswahl
For i = 0 To .ListCount - 1
If Not Dic.Exists(Val(.List(i, 9))) Then Dic.Add Val(.List(i, 9)), Val(.List(i, 9))
Next
End With
'Lieferant, die nicht in Auswahl sind (also nicht in Dictionary), am Ende vom Auswahlliste einfügen
With ListBoxLieferanten
For i = 0 To .ListCount - 1
If Not Dic.Exists(Val(.List(i, 9))) Then
ListBoxAuswahl.AddItem
j = ListBoxAuswahl.ListCount - 1
ListBoxAuswahl.List(j, 0) = .List(i, 0)
ListBoxAuswahl.List(j, 1) = .List(i, 1)
ListBoxAuswahl.List(j, 2) = .List(i, 2)
ListBoxAuswahl.List(j, 3) = .List(i, 3)
ListBoxAuswahl.List(j, 4) = .List(i, 4)
ListBoxAuswahl.List(j, 5) = .List(i, 5)
ListBoxAuswahl.List(j, 6) = .List(i, 6)
ListBoxAuswahl.List(j, 7) = .List(i, 7)
ListBoxAuswahl.List(j, 8) = .List(i, 8)
ListBoxAuswahl.List(j, 9) = .List(i, 9)   ' ID
Else
Zaehler = Zaehler + 1
End If
Next i
End With
End Sub
VG
Yal
Anzeige
AW: 2D Array an 2D Array anhängen?
29.04.2022 10:22:03
Marc
Hallo Yal,
interessanter Ansatz! Hier ist das Dictionary relativ einfach nachzuvollziehen, ich schaue mal, ob ich Deine oder die Version von Nepumuk eher nutzen kann. Danke auf jeden Fall auch Dir für Deine Rückmeldung!
Ich wünsche Dir ein angenehmes Weekend.
Lg Marc
Vielen Dank für die Rückmeldung
29.04.2022 11:28:56
Yal
sogar für die ausfürliche Rückmeldung an jeden Beitragenden.
Nepumuk verwendet den Dictionary für das Schlüsselfeld, packt aber parallel alle Einträge in 2 Arrays. Er durchläuft dafür die Spalten mit einer zusätzlichen For-Schleife Die Länge seiner Variablen macht den Code schwerfällig: wenn man Arr1 & x1 anstatt avntArray1 & ialngIndex1 verwendet, kann man sich die leere Zwischenzeile sparen, ohne dass die Lesbarbeit zu sehr leidet (nur mein pers. Geschmack :-) trotzdem grossen Respekt für das Können).
Snb macht es kürzer in den er nur die Verweis/Schlüssel beider Liste ins Dictionary packt und das gesamt an die Zielliste überbringt. Hatte noch nie gesehen, wenn es klappt, habe ich was gelernt.
VG
Yal
Anzeige
AW: 2D Array an 2D Array anhängen?
29.04.2022 09:56:59
Daniel
Hi
vergleiche doch mal die ungeliebte Option mit der Verwendung des Tabellenblatts mit deiner Schleife.
das sollte auch programmiertechnisch einfach sein:
1. beide Arrays untereinander in ein Tabellenblatt einfügen
2. Duplikate Entfernen anwenden
3. neuen gesamten Zellbereich wieder ins Array einlesen.
dh mit 4. Codezeilen ist die Aufgabe erledigt und wenns genügend schnell ist, was spricht dann dagegen?
Gruß Daniel
AW: 2D Array an 2D Array anhängen?
29.04.2022 10:26:25
Marc
Hallo Daniel,
ja, Du hast natürlich vollkommen Recht. Irgendwie sträuben sich mir bei mir alle Haare beim Gedanke an die Zwischenspeicherung, aus irgend einem Grund verbinde ich das mit "unsauber programmieren". Aber Dein Plädoyer ist schon sehr überzeugend, das muss ich zugeben. Ich werde das mal rein aus Interesse testen, was das Verarbeitungszeittechnisch bedeutet. Ich bin gespannt...
Danke auch Dir für Deine Rückmeldung, ich wünsche Dir ein angenehmes Wochenende
Lg Marc
Anzeige
AW: 2D Array an 2D Array anhängen?
29.04.2022 10:30:33
snb
Wenn Dictionary verwendet, dann so:

Private Sub cmdAddAll_Click()
sn = ListBoxLieferanten.List
sp = ListBoxAuswahl.List
With CreateObject("scripting.dictionary")
For j = 0 To UBound(sn)
.Item(sn(j, 9)) = Application.Index(sn, j)
Next
For j = 0 To UBound(sp)
.Item(sp(j, 9)) = Application.Index(sp, j)
Next
ListBoxAuswahl.List = Application.Index(.items, 0, 0)
End With
End Sub

AW: 2D Array an 2D Array anhängen?
29.04.2022 10:44:22
Marc
Hallo snb,
huuu, so viele geile Antworten auf meine eigentlich so doofe Frage;-). Auch Deine Version wird gleich in den Test übernommen, danke Dir vielmals!
Ich wünsche ein schönes Weekend
Lg Marc
Anzeige
Hmm...
29.04.2022 11:14:29
Yal
Sehe ich richtig, dass anschliessend einen ListBoxAuswahl.List aufgebaut wird, die auf eine Dictionary, dass selbst auf ListBoxAuswahl.List referenziert?
Ich kam dazu, in dem ich zuerst dachte ein ListBoxAuswahl.Clear wäre davor notwendig. Dann wäre die Referenzierung weg.
Ansonsten sieht es richtig klasse aus. Wenn es funktioniert, bekommt snb alle meine Bewertungspunkten.
VG
Yal
AW: Hmm...
29.04.2022 11:24:53
Nepumuk
Hallo Yal,
hast du die Prozedur getestet? Bei mir steigt die in dieser Zeile:
ListBoxAuswahl.List = Application.Index(.items, 0, 0)
mit einer Fehlermeldung (Fehler 13 - Typen unverträglich) aus. Außerdem rödelt sie vor dem Fehler bei 10.000 Zeilen gute 5 Minuten rum.
Da ist sogar deine mit gut 20 Sekunden schneller. :-)
Gruß
Nepumuk
Anzeige
AW: Hmm...
29.04.2022 11:35:13
Yal
Ja. Eben. Wobei die Fehlermeldung nicht auf einer Zirkular-Referenzierung deutet.
Stellt sich übrigens die Sinnigkeit 10.000 Einträge (dieses Detail hatte ich vergessen) per ListBox zu verwalten... Irgendwann muss der Schmerz so gross, dass man doch Access in der Hand nimmt. Power Query wäre der Zwischenschritt.
VG
Yal
AW: Hmm...
29.04.2022 14:33:16
Marc
Hey zusammen,
die Fehlermeldung von Nepumuk kriege ich leider auch. Ich teste halt mal alles durch.
PS: Yal, Du hast absolut recht, und die eigentlichen Daten liegen übrigens auch in einer Access-DB, ich nutze Excel nur als Frontend. Aber Du weisst wie es ist: Anforderung mit kurzer Umsetzungszeit, einigermassen gute Excel-Skills aber leider nicht mit Access - da habe ich halt Excel gewählt. Und die 10.000 Einträge sind ja auch ein absoluter Extremfall, die Liste wird jeweils mit Auswahl diverser Parameter bereits massiv reduziert. Wie schon bei der Fragestellung geschrieben: Eigentlich nicht wirklich ein Problem, es funktioniert so bereits seit längerer Zeit ohne das sich jemand beschwert hätte. Aber man kann es eben doch immer noch schöner machen...;-)
Anzeige
SQL
29.04.2022 16:15:28
Yal
Das gesamte Vorhaben mit SQL:

Select Spalte1, Spalte2; ... Spalte9 aus L
From Lieferant as L
Union
Select Spalte1, Spalte2; ... Spalte9 aus A
From Auswahl as A Left Outer Join Lieferant as L On A.Spalte9 = L.Spalte9
Where L.Spalte9 is Null
Fertig.
Alternativ: Schaue Dir Power Query an. Du kannst damit auf Access zugreifen und Transformation per Klick "programmieren"
https://excelhero.de/power-query/power-query-ganz-einfach-erklaert/
2 Stunden in selbst-Eineignen von Power Query sind in eine Woche zurückgeholt.
VG
Yal
Anzeige
AW: 2D Array an 2D Array anhängen?
29.04.2022 14:14:35
snb
Doch nicht so kompliziert:

Private Sub cmdAddAll_Click()
sn = ListBoxLieferanten.List
sp = ListBoxAuswahl.List
With CreateObject("scripting.dictionary")
For j = 0 To UBound(sn)
.Item(sn(j, 9)) = Application.Index(sn, j + 1)
Next
For j = 0 To UBound(sp)
.Item(sp(j, 9)) = Application.Index(sp, j + 1)
Next
ListBoxAuswahl.List = Application.Index(.items, 0, 0)
End With
End Sub

AW: 2D Array an 2D Array anhängen?
29.04.2022 14:31:09
Nepumuk
Hallo snb,
laut Marc können es auch mal 10.000 Zeilen sein, die übertragen werden müssen. Hast du deine Lösung mal mit dieser Datenmenge getestet?
Das dauert auf meinem Rechner 4 Minuten 45 Sekunden.
Wahrlich kein Meisterwerk.
Gruß
Nepumuk
AW: 2D Array an 2D Array anhängen?
29.04.2022 17:18:49
snb
Teste mal:

Private Sub cmdAddAll_Click()
sn = ListBoxLieferanten.List
sp = ListBoxAuswahl.List
With CreateObject("scripting.dictionary")
For j = 0 To UBound(sn)
.Item(sn(j, 9)) = Application.Index(sn, j + 1)
Next
For j = 0 To UBound(sp)
if Not .exists(sp(j,9)) then .Item(sp(j, 9)) = Application.Index(sp, j + 1)
Next
ListBoxAuswahl.List = Application.Index(.items, 0, 0)
End With
End Sub

AW: 2D Array an 2D Array anhängen?
29.04.2022 19:14:10
Nepumuk
Hallo snb,
mit 4 Minuten 37 Sekunden glatte 8 Sekunden schneller als die vorletzte Variante.
Wenn du an Stelle von Application.Index WorksheetFunction.Index verwendest kannst du satte 5 Sekunden zusätzlich rauskitzeln.
Übrigens, meine Variante benötigt für dieselbe Datenmenge 0,14 Sekunden.
Gruß
Nepumuk
AW: 2D Array an 2D Array anhängen?
29.04.2022 20:35:05
snb
Ich kenne dein Rechner nicht.
Ich habe 2 comboboxen
Jeder liest ein Range von 10.000 Zeilen
Die Unikate Integration läuft hier in 0,8 sekunden.

Private Sub UserForm_Initialize()
ComboBox1.List = Sheet1.Cells(1).CurrentRegion.Value
ComboBox2.List = Sheet1.Cells(1, 12).CurrentRegion.Value
End Sub

Private Sub UserForm_Click()
t0 = Timer
sn = ComboBox1.List
sp = ComboBox2.List
With CreateObject("scripting.dictionary")
For j = 0 To UBound(sn)
.Item(sn(j, 1)) = Array(sn(j, 0), sn(j, 1), sn(j, 2), sn(j, 3), sn(j, 4), sn(j, 5), sn(j, 7), sn(j, 8), sn(j, 9))
Next
For j = 0 To UBound(sp)
If Not .exists(sp(j, 1)) Then .Item(sp(j, 1)) = Array(sp(j, 0), sp(j, 1), sp(j, 2), sp(j, 3), sp(j, 4), sp(j, 5), sp(j, 7), sp(j, 8), sp(j, 9))
Next
ComboBox1.List = Application.Index(.items, 0, 0)
End With
MsgBox Timer - t0
End Sub

AW: 2D Array an 2D Array anhängen?
29.04.2022 20:57:44
Nepumuk
Hallo snb,
schon besser.
snb Nepumuk
0,1796875 0,0859375
0,171875 0,0859375
0,1796875 0,0859375

Gruß
Nepumuk
AW: 2D Array an 2D Array anhängen?
30.04.2022 15:56:39
snb
Dann vielleicht so:

Private Sub UserForm_Click()
t0 = Timer
sn = ComboBox1.List
sp = ComboBox2.List
With CreateObject("scripting.dictionary")
For j = 1 To UBound(sn)
x0 = .Item(sn(j, 1))
Next
For j = 1 To UBound(sp)
If Not .exists(sp(j, 1)) Then
x0 = .Item(sp(j, 1))
ComboBox1.AddItem
n = ComboBox1.ListCount - 1
For jj = 0 To UBound(sn, 2)
ComboBox1.List(n, jj) = sp(j, jj)
Next
End If
Next
End With
MsgBox Timer - t0
End Sub

AW: 2D Array an 2D Array anhängen?
30.04.2022 16:07:57
Nepumuk
Hallo snb,
das war mit 19,5 Sekunden wieder ein Schritt zurück.
Gruß
Nepumuk
AW: 2D Array an 2D Array anhängen?
30.04.2022 22:48:49
snb
Kann nicht stimmen:
Hier: Combobox1. 10000 items
Combobox 2 10000 items
Alle Combobox 2 Items sollten in Combobox1 addiert werden 0.98 s (Ergebnis : combobox1 20000 Items)
Combobox2 identisch zu Combobox1: 0.18 s (Ergebnis Combobox1 10000 Items)
AW: 2D Array an 2D Array anhängen?
01.05.2022 08:23:46
Nepumuk
Hallo snb,
darum geht es doch gar nicht. Es beweist nur, dass weniger Programmzeilen nicht automatisch schnelleres Programm bedeuten.
Gruß
Nepumuk
AW: 2D Array an 2D Array anhängen?
02.05.2022 14:29:27
Marc
Hey snb und Nepumuk,
ich finde es richtig cool, wie meine Frage dazu geführt hat, dass Ihr 2 immer mehr Codeoptimierungen findet. Unter dem Strich habe ich 2 offensichtlich hochqualifizierte Profis, die inzwischen doch einige Zeit für die bestmögliche Lösung meines Problems investiert haben, und das ganze kostenlos für mich. Ich bin noch am austesten, welche Variante für mich am besten funktioniert, eine grosse Verbesserung ist es auf jeden Fall bereits jetzt. Ich will mich an dieser Stelle bedanken, ich habe eine Lösung und viel gelernt!
Lg Marc
AW: 2D Array an 2D Array anhängen?
29.04.2022 13:25:28
Daniel
Ich frage mich immer noch, was wirklich gegenfogendes spricht:

With Range("A1")
.resize(Listbox1.LisCount, Listbox1.ColumnCount) = Listbox1.List
.resize(Listbox2.LisCount, Listbox2.ColumnCount).Offest(Listbox1.ListCount)= Listbox2.List
.CurrentRegion.RemoveDuplicates 1, xlno
Listbox1.List = . CurrentRegion.value
.CurrentRegion.clearcontents
End With
Gruß Daniel
AW: 2D Array an 2D Array anhängen?
29.04.2022 14:48:26
Marc
Hallo Daniel,
die Antwort auf Deine Frage: Gar nix. Und ich werde es genau so testen, nur schon um mal herauszufinden, ob das allenfalls der viel schnellere Weg wäre...;-)
Lg Marc
AW: 2D Array an 2D Array anhängen?
29.04.2022 15:06:21
Daniel
ich behaupte mal, wenn du mit VBA schneller sein willst als das, wirds aufwendig, weil VBA viele benötigte Funktionen nicht eingebaut hat und die dann nachprogrammiert werden sollen (bspw das Sortieren des Gesamtarrays, um eine schnelle Duplikatsprüfung durchführen zu können)
Gruß Daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige