Registriert seit: 26.09.2018
Version(en): 2016
Nein klappt nicht.
Ich bin wieder am Anfang. Wie bringe ich eine Selection oder einen Range in ein Array?
Ich mache einen Range mit dem Union Befehl
Code:
Set rng = Union(rng, FoundCell)
Danach muss ich den rng in ein Array kriegen und nochmals durchsuchen, oder währen der Suche in einen zweiten Loop setzen.
Nur, ich krieg das einfach nicht hin.
Aber ich bin ziemlich sicher so würde es klappen.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
28.09.2018, 16:25
(Dieser Beitrag wurde zuletzt bearbeitet: 28.09.2018, 16:25 von schauan.)
Hallöchen,
da wirst Du wohl mehrere Arrays bilden oder Zellen einzeln übernehmen müssen. Eine direkte Übernahme geht nur mit einem zusammenhängenden Bereich
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 26.09.2018
Version(en): 2016
oh.
Mein rng.Address spuckt dies aus
$S$17365,$S$57104,$S$71989:$S$71990,$S$72025:$S$72026,$S$15445
kann man diese Rows nicht in ein Array laden?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
bei so wenigen Treffern würde ich selbige einzeln in ein Array überführen, sofern nötig.
Ansonsten nimmst Du $S$17365:$S$15445 in ein Array und filterst die Treffer raus. Das könnte z.B. so gehen:
Code:
Sub test()
arrRng1 = WorksheetFunction.Transpose(Range("$S$17365", "$S$15445"))
arrRng2 = Filter(arrRng1, "Anneliese")
End Sub
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 26.09.2018
Version(en): 2016
Ich glaub ich bin zu blöd, aber wie krieg den Range nicht in das array?
Ich habe das gefunden, das geht ja auch, nur ich krieg die Inhalte nicht rein.
Code:
Option Explicit
Sub SplitRangeAddrrtoArray()
Dim cells_addresses As Variant
Dim UnionRng As Range
Dim RngArea As Range
Dim C As Range
Dim i As Long
Dim Output_Array() As Variant
cells_addresses = "$A$1,$C$3:$F$3,$F$4"
ReDim Output_Array(0 To 1000) ' init array size >> will optimize later
Set UnionRng = Range(cells_addresses) '<-- Set a Range with the cells addresses provided
' loop through range's areas in case there are multiple areas
For Each RngArea In UnionRng.Areas
For Each C In RngArea ' loop through the area's cells
Output_Array(i) = C.Address
i = i + 1
Next C
Next RngArea
ReDim Preserve Output_Array(0 To i - 1) '<-- resize to actual populated size
End Sub
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
dann musst Du auch die Inhalte (Value) rein nehmen und nicht die Adressen.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 26.09.2018
Version(en): 2016
01.10.2018, 17:15
(Dieser Beitrag wurde zuletzt bearbeitet: 01.10.2018, 17:15 von marcoh.)
Nun ich bin soweit weitergekommen als dass ich die Suchresultate in einen neuen Tab schreibe und von da halt die suche nochmals Starte mit dem Namen und dementsprechend nochmals ein neues Suchresultat erhalte.
Das erste ist quasi eine Zwischentabelle. Kann man eigentlich eine temp. Tabelle erstellen? Wie mit SQL?
So ist's nicht schön, aber ich krieg's in einem Schritt nicht hin.
Das ist dann etwa so aus:
Nach dem ersten Suchlauf (Strasse Nr, PLZ, Ort) erhalte ich ein Resultat von 40. (aus ca. 65k)
Dann suche ich nach dem Namen und erhalte am Schluss 8 (wenn alles so klappt wie gewünscht..)
ca 25 Sekunden dauert das ganze...
Meiner Meinung nach sicher ausbaufähig
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
eine Frage wäre, was Du unter einer temporären Tabelle verstehst. Array's hatten wir ja schon …
Manche legen auch ein Blatt an, spielen die Daten dort drauf, verarbeiten sie und löschen das Blatt dann wieder.
Deine Arrays springen auch ganz schön hin und her. Mal hast Du was irgendwo in Spalte S, dann in A1 und C3:F4, …
Wie gesagt, wenn Deine Daten so zerpflückt sind musst Du sie entweder einzeln in ein Array überführen und dann verarbeiten oder du findest eine Logik, um mit einem zusammenhängenden größeren Bereich zu arbeiten, den Du in einem Rutsch auslesen kannst.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 26.09.2018
Version(en): 2016
Nein, so kompliziert ist es ja gar nicht
Ich hab mir je eine Suchspalte gemacht.
Tabelle A - Suchspalte I
Tabelle B - Suchspalte S
Ergebis: Tabelle B (A:R) & Tabelle A (G:H)
mit temp. Tabelle meine ich eigentlich sowas wie ein Array. Ist ja quasi dasselbe. Ich würde ja auch ein Array nehmen, wenn ich nur den Scheiss da reinkriegen würde.
Ich hab die Ergebnisse jeweils in einen Range.entireRow gefasst, den ich dann über Selection in einen neuen Sheet kopiere.
Wieso kann ich nicht einfach die Range.Address nehmen und die in ein neues Array füllen? Geht das nicht, weil ich die ganze Row markiere?
Wenn ich dem Row angeben könnte wie breit er ist, ginge es vielleicht..
Registriert seit: 26.09.2018
Version(en): 2016
Hach ich komm einfach nicht weiter
Ich wollte nun einen neuen Angriff starten mit SQL Query. Des ist aber so grottenlangsam und da krieg ich das Problem mit dem Namensfeld noch weniger in den Griff.
Bin eigentlich wieder am selben Punkt wie am Anfang.