Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
928to932
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
928to932
928to932
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Werte in Array finden
26.11.2007 18:21:54
Jenny
Hallo, Ihr Lieben,
ich habe (wahrscheinlich sogar hier) gelesen, daß VBA-Codes schneller laufen, wenn man die Zelleinträge in ein Array einliest.
Also in etwa so:
arrDatenfeld = Worksheetfunction.Transpose(Range("A1:A1000"))
Nun möchte ich einen beliebig vorgegebenen Wert in diesem Array finden und seine Position ausgeben.
Mit folgender Idee denke ich aber wohl zu einfach (zumindest funzt es nicht):
Ausgabe = arrDatenfeld.Find(SuchWert)
Aber daß ich das Array jetzt mit "Until...Loop" durchforste, kann doch auch nicht des Pudel's Kern sein, oder?

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte in Array finden
26.11.2007 18:55:00
ransi
HAllo
Wenn das Array nicht sortiert ist, wirst du eine Schleife aufsetzen müssen.
Wenn gefunden dann exit for.
For i =1 to ubound(arr)
if arr(i) =suchwert then
ausgabe=i
exit for
end if
next
ransi

AW: Werte in Array finden
26.11.2007 19:04:00
Jenny
Danke für die Antwort, ransi
Aber ist das dann immer noch schneller als das profane
Ausgabe = Range("A1:A1000").Find(SuchWert).Row
Denn sonst kann ich mir das Array-Einlesen ja sparen.

AW: Werte in Array finden
26.11.2007 23:49:54
Daniel
Hi
die Schleife ist auf jeden Fall schneller als die Excel-Suche mit FIND.
zwar nicht beim ersten mal, weil das Einlesen auch seine Zeit braucht, aber wenn du mehrfach Suchvorgänge in diesen Werten durchführen willst, ist es auf jeden Fall Ratsam, diese in ein Array einzulesen und per Schleife zu durchsuchen.
(ich vermute mal, das .FIND auch nicht anders arbeitet)
Gruß, Daniel

Anzeige
AW: Werte in Array finden
26.11.2007 19:02:42
ransi
HAllo Jenny
Ich ziehe meine letzte Antwort zurück:
Tabelle3

 ABCD
1G7YZOSP0P5  561C00KIVZ
23P6V8DUEXR   
3C2QOBWS1QY   
49WJ6V30R1P   
5WH1K91ASPJ   
6U5RV7DV6OT   
7GZSHNA9T8K   
80MA6K008ZN   
9IP62GI9E7N   
108NIERPMNEN   
11A5FAT5V8R7   
12TYSM244SK3   
138FPYB4QF4L   
14P02LV4UR9H   
159XUIKQ5X7C   
16EAHXU2S73L   
17561C00KIVZ   
18XPBNN8E80I   
19KORNFGZZNY   
20MPE1UO9PL0   
21PF2QSEM6TB   
229BIEJVGUGJ   
23QWI9KYM7DM   
249I9ZD2J38M   
25VN6YK3S2C3   


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Versuche es mal so:
' **********************************************************************
' Modul: Tabelle3 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit


Public Sub test()
Dim arr
arr = WorksheetFunction.Transpose(Range("a1:A1000"))
MsgBox WorksheetFunction.Match(Range("D1").Value, arr, 0)
End Sub

ransi

Anzeige
AW: Werte in Array finden
26.11.2007 19:03:24
Beverly
Hi Jenny,
das geht mit diesem Code
Sub array_wert_auslesen() '* 24.06.07 * '* erstellt von Karin, http://beverly.excelhost.de* '* beverly@excelhost.de * Dim arrWerte Dim inPosition As Integer arrWerte = Range("A1:A1000") On Error Resume Next ' erforderlich wenn Wert nicht gefunden, sonst Laufzeitfehler inPosition = Application.WorksheetFunction.Match("Hallo", arrWerte, 0) If inPosition "" Then inPosition = Application.WorksheetFunction.Match("Hallo", arrWerte) MsgBox "auf Position " & inPosition, , "Wert ist enthalten" Else MsgBox "Wert im Array nicht vorhanden" End If End Sub


________________________________________

Anzeige
Ja, ja, ja !!!
26.11.2007 19:24:00
Jenny
Danke euch,
logisch, so hätte man's ja auch ohne VBA gemacht!
Nur noch eine Frage zum Abschluss:
Ist "Transpose" völlig überflüssig, oder kann man hier nur deshalb darauf verzichten, weil der Bereich nicht mehrdimensional ist?

AW: Ja, ja, ja !!!
26.11.2007 19:49:14
Beverly
Hi Jenny,
Transpose ändert doch nur die Darstellungsweise einer Matrix aus Spalten- in Zeilenordnung oder umgekehrt, hat jedoch nichts mit dem Übernehmen der Daten in das Array zu tun.
Bis später,
Karin

AW: Match
29.11.2007 19:58:00
Gerd
Hallo,
Sepp Ehrensberger prüft auf Isnumeric und kann so auf eine Fehlerbehandlung verzichten.
Gruß Gerd
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige