Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
992to996
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
992to996
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
In Array suchen
09.07.2008 20:35:10
Peter
Liebe Forennutzer,
ich habe folgendes Problem.
Wie kann ich mit hilfe von VBA einen text aus einer Zelle auslesen und in einem Array suchen. Sobald ich den Text gefundne habe müsste ich die Info in welcher Reihe ich den Text gefunden habe weiterverwenden.
Kann mir jemand mit der technischen umsetzung helefen?
Vielen Dank und LG
Peter

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In Array suchen
09.07.2008 20:51:00
Peter
Hallo Peter,
meinst du so etwas: ?
Option Explicit

Public Sub Test()
Dim aTemp     As Variant
Dim iIndex     As Integer
Dim bGefunden  As Boolean
aTemp = Array("Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", _
"Golf", "Hotel", "India", "Juliet", "Kilo", "Lima", "Mike", "November", _
"Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", _
"Victor", "Whisky", "X-Ray", "Yankee", "Zulu")
For iIndex = 0 To UBound(aTemp)
If Range("A1").Value = aTemp(iIndex) Then
bGefunden = True
Exit For
End If
Next iIndex
If bGefunden = True Then
MsgBox "Der Begriff  """ & Range("A1").Value & """  wurde auf der Position " _
& iIndex & " gefunden.", _
64, "   Information für " & Application.UserName
Else
MsgBox "Der Begriff  """ & Range("A1").Value & """  wurde NICHT gefunden.", _
48, "   Hinweis für " & Application.UserName
End If
End Sub


Gruß Peter

Anzeige
AW: In Array suchen
09.07.2008 20:53:45
Daniel
Hi
wenn es ein 2-Dimensionales Array ist und alle Array-Felder durchsucht werden sollen, dann im Prinzip so:

Sub Array_durchsuchen()
Dim Suchbegriff As String
Dim Reihe As Long, Spalte As Long
Dim arr
'... hier muss das Array definiert werden
Suchbegriff = "xxx"
For Reihe = LBound(arr, 1) To UBound(arr, 1)
For Spalte = LBound(arr, 2) To UBound(arr, 2)
If Suchbegriff = arr(Reihe, Spalte) Then Exit For
Next
If Spalte  UBound(arr, 1) Then
MsgBox Suchbegriff & " konnte nicht gefunden werden."
Else
MsgBox Suchbegriff & " wurde gefunden. Reihe: " & Reihe & ", Spalte: " & Spalte
End If
End Sub


die Information, in welcher reihe der Begriff gefunden wurde, steht in der Variablen REIHE.
wurde der Begriff nicht gefunden, dann ist REIHE um 1 grösser als die Zeilenanzahl der Array-Variable. diese kann man mit UBOUND abfragen.
Gruß, Daniel

Anzeige
AW: In Array suchen
09.07.2008 21:11:00
Peter
Besten Dank. nur eine Nachfrage wie kann ich eine array von Zelle A1 bis Zelle D100 in einem Array definieren?
VG
Peter

AW: In Array suchen
09.07.2008 21:22:16
Peter
Hallo Peter,
z. B. so:

Public Sub Array_Test()
Dim aWerte() As Variant
aWerte = Range("A1:D100").Value
MsgBox aWerte(1, 1) & " / " & aWerte(100, 4)
End Sub


Gruß Peter

AW: In Array suchen
09.07.2008 21:34:50
Daniel
hi
so:

dim arr
arr = Range("a1:D100").value


allerdings geht das was du willst dann wesentlich einfacher mit der FIND-funktion:


Dim Reihe as Long
Reihe = Range("A1:D100").Find(What:="xxx", lookat:=xlwhole, lookin:=xlvalues).row


diese Methode hat allerdings den Nachteil, daß sie einen Fehler erzeugt, wenn der Suchbegriff nicht im Zellbereich vorhanden ist.
Da kann man auf verschiedene Methoden aber abfangen:


Dim Reihe as Long
Reihe = 0
on error resume  next
Reihe = Range("A1:D100").Find(What:="xxx", lookat:=xlwhole, lookin:=xlvalues).row
on error goto 0
if Reihe = 0 then
msgbox "kein Treffer"
else
msgbox "gefunden in Reihe: " & Reihe
end if


oder so:


Dim Reihe as Long
Dim Zelle as Range
Set Zelle  = Range("A1:D100").Find(What:="xxx", lookat:=xlwhole, lookin:=xlvalues).
if Zelle is Nothing then
msgbox "kein Treffer"
else
Reihe = Zelle.row
msgbox "gefunden in Reihe: " & Reihe
end if


oder so:


Dim Reihe as Long
if worksheetfunction.countif(Range("A1:D100"), "xxx") > 0 then
Reihe = Range("A1:D100").Find(What:="xxx", lookat:=xlwhole, lookin:=xlvalues).row
msgbox "gefunden in Reihe: " & Reihe
Else
msgbox "kein Treffer"
end if


Gruß, Daniel

Anzeige
AW: In Array suchen
09.07.2008 21:41:46
Peter
Hallo Peter,
solltest du unbedingt beim Array bleiben wollen, dann geht die Sucht z. B. so:

Public Sub Array_Test()
Dim aWerte()   As Variant
Dim iX_Achse   As Integer
Dim iY_Achse   As Integer
Dim sBegriff   As String
Dim bgefunden  As Boolean
aWerte = Range("A1:D100").Value
sBegriff = "D75"
'MsgBox aWerte(1, 1) & " / " & aWerte(100, 4)
For iX_Achse = 1 To 4
For iY_Achse = 1 To 100
If sBegriff = aWerte(iY_Achse, iX_Achse) Then
MsgBox "Der Begriff  """ & sBegriff & """  wurde auf den Koordinaten  """ _
& iX_Achse & "/" & iY_Achse & """  gefunden.", _
64, "   Information für " & Application.UserName
bgefunden = True
Exit For
End If
Next iY_Achse
Next iX_Achse
If bgefunden = False Then
MsgBox "Der Begriff  """ & sBegriff & """  wurde NICHT gefunden.", _
48, "   Hinweis für " & Application.UserName
End If
End Sub


Gruß Peter

Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige