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

Verständnissfrage Arrays

Verständnissfrage Arrays
21.03.2014 09:43:55
Marcel
Hallo zusammen,
ich habe folgenden Code geschrieben

Private Sub cmdbtn_search_Click()
Dim a_myvalues As Variant
Dim testarray As Variant
Dim a_letztezeile As Integer
a_letztezeile = Cells(Rows.Count, 1).End(xlUp).Row
ReDim a_myvalues(a_letztezeile - 1)
c = 1
For i = 0 To UBound(a_myvalues)
a_myvalues(i) = Range("a" & c).Value
c = c + 1
Next
testarray = Split(txt_search.Text, vbCrLf)
Unload frm_search
'match arrays
a_counter = 0
For i = 0 To UBound(testarray)
x = Application.Match(testarray(i), a_myvalues, 0)
If Not IsNumeric(x) Then frm_result.lbl_result.Caption = frm_result.lbl_result.Caption  _
_
& testarray(i) & vbCrLf
Next
If frm_result.lbl_result.Caption = "" Then MsgBox "Alle Werte vorhanden", vbOKOnly Else  _
Load frm_result: frm_result.Show
End Sub
Das ganze ist ein AddIn, ich habs mal mit angehängt.
Da die Werte, in denen gesucht werden soll, immer in A1:An stehen - kann man jetzt testweise irgendwas in Spalte A eingeben ... das AddIn über das Ribon aufrufen und anschließend nach einem vorhandenen Wert suchen.
Selbst wenn der Wert in dem Array, erzeugt aus dem Inhalt der Spalte A, zufinden ist- läuft
x = Application.Match(testarray(i), a_myvalues, 0)
auf #NV.
Ich kann beim besten Willen nicht nachvollziehen warum?
Möglicherweise ist mein Code auch total umständlich, falls es also schlankere Möglichkeiten gibt, bin ich gern für Vorschläge offen.
Danke
Marcel
AddIn: https://www.herber.de/bbs/user/89773.xlam

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
doppelt
21.03.2014 10:07:24
Beverly


AW: Verständnissfrage Arrays
21.03.2014 12:59:11
fcs
Hallo Marcel,
ich hab dein AddIn mal getestet.
Es scheint zu funktionieren mit Texten, hat aber Probleme mit Zahlenwerten.
Damit die Match-Methode damit klarkommt, müssen die Zellinhalte als Text in das Array eingelesen werden.
Bei der Suche nach Zahlen müssen dann in der Textbox auch die 1000er-Trenzeichen und Dezimaltrennzeichen so mit eingegeben werden, wie die Inhalte in der Tabelle angezeigt werden.
Die entscheidenden Zeilen für die Codeanpassung hab ich mal mit #### markiert.
Der Rest ist nur für die Darstellung/Lesbarkeit.
Gruß
Franz
Private Sub cmdbtn_search_Click()
Dim a_myvalues() As Variant
Dim testarray As Variant
Dim a_letztezeile As Integer
Dim c As Long, i As Long, x As Variant 'restliche Variablen deklariert #####
With ActiveSheet                                          '#####
a_letztezeile = .Cells(.Rows.Count, 1).End(xlUp).Row  '#####
ReDim a_myvalues(a_letztezeile - 1)
c = 1
For i = 0 To UBound(a_myvalues)
a_myvalues(i) = .Range("a" & c).Text                  '######
c = c + 1
Next
End With                                                    '######
testarray = Split(txt_search.Text, vbCrLf)
Unload frm_search
'match arrays
For i = 0 To UBound(testarray)
x = Application.Match(testarray(i), _
a_myvalues, 0)
If Not IsNumeric(x) Then frm_result.lbl_result.Caption = _
frm_result.lbl_result.Caption & testarray(i) & vbCrLf
Next
If frm_result.lbl_result.Caption = "" Then
MsgBox "Alle Werte vorhanden", vbOKOnly
Else
Load frm_result: frm_result.Show
End If
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige