Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1440to1444
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 füllen mit doppelten

Array füllen mit doppelten
21.08.2015 09:23:27
Timo
Hallo, ich habe folgenden Code, leider läuft er nicht ich vermute das Füllen mit dem Array funktioniert nicht, da ich nicht weiß wieviel doppelte er finden muss ich doch mit einem Zähler die Arraygröße anpassen oder ?
Bin um jeden Tipp dankbar

Sub DoppelteFinden()
Dim intr1 As Integer, intr2 As Integer, a() As Variant, inhalt As Variant
For intr1 = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For intr2 = intr1 + 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(intr1, 1) = Cells(intr2, 1) Then
i = i + 1
a(i) = Cells(intr1, 1)
End If
Next intr2
Next intr1
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array füllen mit doppelten
21.08.2015 09:51:28
Nepumuk
Hallo,
so?
Sub DoppelteFinden()
    Dim intr1 As Integer, intr2 As Integer, a() As Variant, inhalt As Variant
    Dim i As Long
    
    For intr1 = 1 To Cells(Rows.Count, 1).End(xlUp).Row
        
        
        For intr2 = intr1 + 1 To Cells(Rows.Count, 1).End(xlUp).Row
            If Cells(intr1, 1) = Cells(intr2, 1) Then
                i = i + 1
                Redim Preserve a(1 To i)
                a(i) = Cells(intr1, 1)
            End If
        Next intr2
    Next intr1
End Sub

Gruß
Nepumuk

Anzeige
AW: Array füllen mit doppelten
21.08.2015 10:00:21
Timo
Ohne Worte......
ist doch einfach frustrierend (für mich).
Das sieht ganz gut aus, ich danke dir.!!!!!

AW: Array füllen mit doppelten
21.08.2015 10:00:37
Matthias
Nutze folgenden Code um for deinem füllen des Arrays die Zahl der Einträge um eins zu erhöhen
ReDim Preserve a(UBound(a) + 1)
UBound (UpperBoundary) gibt dir die Obergrenze deines Arrays zurück.
Preserve sagt einfach nur dass deine Werte im Array erhalten bleiben bei der Neudefinition mit ReDim.
lg Matthias

AW: DAs sieht mir ganz nach -.....
21.08.2015 12:17:31
Timo
Das sieht nicht nur so aus... Habe mir unten alle Tipps angesehen, bin auch dem Link gefolgt und habe mir jetzt, mit dem eingelesenen Wissen, diesen Code gebastelt. Hatte jetzt eben noch das Problem mit dieser Array-Zuordnung.
Hoffe die Tatsache dass ich einen neuen Post gemacht habe stößt dir nicht böse auf. War aber mehr Unbedachtheit als Böswilligkeit. Und ja mein Name ist Timo, (so bin ich auch Regist.) frag mich nicht warum unten ein O fehlt.
Da ich am Arbeitsplatz und Zuhause untersch. Excel Versionen nutze trage ich bei Version am liebsten keine Relevanz ein, kann mich aber zukünftig auf eine Version festlegen. Und wenn ich lese wie hier Probleme gelöst werden bzw wie hier Code umgesetz wird empfinde ich mein Wissen nur als kleiners Basiswissen, kann aber zukünftig gerne auch Anfänger oder sonst. eintragen.
War nicht Böse gemeint, bei mir ist der Weg das Ziel, bin deshalb auch immer dankbar viele Vorschläge zu erhalten um mir überall ein wenig abzuschauen.
Gruß

Anzeige
AW: DAs sieht mir ganz nach -.....
21.08.2015 12:36:41
Jack_d
Das sieht nicht nur so aus... Habe mir unten alle Tipps angesehen,
Und hast du meinen Code auch mal angeschaut?
bin auch dem Link gefolgt und habe mir jetzt, mit dem eingelesenen Wissen, diesen Code gebastelt.
Vorbildlich. (Lernbereitschaft)
Hoffe die Tatsache dass ich einen neuen Post gemacht habe stößt dir nicht böse auf. War aber mehr Unbedachtheit als Böswilligkeit.
Es ist einfach unnötig. Wie soll ein potentieller (anderer Helfer) darauf aufbauen, bzw. passiert es so gut und gerne das Arbeit doppelt gemacht wird. Und das stöst (mir) böse auf.
Da ich am Arbeitsplatz und Zuhause untersch. Excel Versionen nutze trage ich bei Version am liebsten keine Relevanz ein, kann mich aber zukünftig auf eine Version festlegen.
Es geht darum das in verschiedenen Versionen verschiedene Dinge nicht funktionieren. Beispielsweise (um meinen Code aufzugreifen) funktioniert das Dictionary Objekt nicht bei Excel (2011) für Mac.

Und wenn ich lese wie hier Probleme gelöst werden bzw wie hier Code umgesetz wird empfinde ich mein Wissen nur als kleiners Basiswissen,

Das ist auch vollkommen richtig. Zumindest was ich von dir bisher gesehen hab (Wertungsneutral)
Ich hab auch nur Basiswissen, und wenn man manch andere sieht zB Rudi, Luc? oder Werner dann kann man fast sagen ich hab gar kein Wissen, aber ich wurschtel mich so durch.
Grüße

Anzeige
Zeit, Ansatz
21.08.2015 18:28:17
Michael
Hi Timo,
ich hab mir Nepumuks Code mal geschnappt und ein bißchen aufgebohrt.
Durch geschickten Einsatz von Arrays geht es schon mal rund 24 mal so schnell.
Außerdem habe ich den Eindruck, daß Du so eine große Ausgabe gar nicht haben willst.
Aus 1009 Zeilen mit Testdaten (per Zufall gezogene Großbuchstaben) werden 19000 Zeilen Ausgabe (auch, wenn die Daten sortiert sind - zumindest, wenn sooo viele doppelt vorkommen)!
In der Variante -4 habe ich ein zweidimensionales Array verwendet, in dem in der "zweiten Spalte" jeder Wert, der bereits "angefaßt" wurde, mit false markiert und nicht erneut berücksichtigt wird. Dann sind es immerhin nur noch 983 Zeilen Ergebnis.
Die Variante -5 zählt schlicht.
Die Datei: https://www.herber.de/bbs/user/99768.xls
Spielerei, aber spiel mal damit, dann siehst Du, was Du am ehesten gebrauchen kannst.
Schöne Grüße,
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige