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

Mittels schleife Arrays durch laufen lassen

Mittels schleife Arrays durch laufen lassen
05.07.2017 12:50:31
Alex
Hallo Forum,
ist es möglich durch eine For-Schleife verschiedene Arrays zu durchsuchen?
bsp.
5 Arrays sind vorhanden.
For i = 1 to 5
dann in Array(i) nach bestimmtem wert Suchen.
Geht das überhaupt wenn ja wie?
Danke schon mal

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mittels schleife Arrays durch laufen lassen
05.07.2017 13:00:58
Daniel
Hi
du kannst mehrere Arrays in ein übergeordnetes Array packen:
ArrX = Array(arr1, arr2, arr3, arr4, arr5)
for i = 0 to 4
Suche dann in ArrX(i)
wenn du auf einzelne Werte des Schleifen Arrays zugreifen willst: ArrX(i)(1)
Next
Gruß Daniel
AW: Mittels schleife Arrays durch laufen lassen
05.07.2017 13:04:57
Alex
Hallo Daniel,
Danke ich werde es Versuchen.
ich gebe dann antwort
AW: Mittels schleife Arrays durch laufen lassen
05.07.2017 13:05:20
Alex
Hallo Daniel,
Danke ich werde es Versuchen.
ich gebe dann antwort
AW: Mittels schleife Arrays durch laufen lassen
05.07.2017 13:08:42
Max2
Hallo,
so etwas geht nicht.
Was du machen kannst, ist ein mehrdimensionales Array zu erstellen.
Das könnte dann so aussehen:
Sub a()
Dim myArray() As Variant
Dim i As Integer, j As Integer
ReDim myArray(4, 4)
For i = 0 To 4
For j = 0 To 4
myArray(i, j) = "Dimension: " & i & "--- index: " & j
Next j
Next i
End Sub
Wenn du dann die Werte des Arrays anschaust, sieht das aufgelistet so aus:

Dimension: 0--- index: 0
Dimension: 0--- index: 1
Dimension: 0--- index: 2
Dimension: 0--- index: 3
Dimension: 0--- index: 4
Dimension: 1--- index: 0
Dimension: 1--- index: 1
Dimension: 1--- index: 2
Dimension: 1--- index: 3
Dimension: 1--- index: 4
Dimension: 2--- index: 0
Dimension: 2--- index: 1
Dimension: 2--- index: 2
Dimension: 2--- index: 3
Dimension: 2--- index: 4
Dimension: 3--- index: 0
Dimension: 3--- index: 1
Dimension: 3--- index: 2
Dimension: 3--- index: 3
Dimension: 3--- index: 4
Dimension: 4--- index: 0
Dimension: 4--- index: 1
Dimension: 4--- index: 2
Dimension: 4--- index: 3
Dimension: 4--- index: 4

Anzeige
AW: Mittels schleife Arrays durch laufen lassen
05.07.2017 14:01:31
Alex
Evtl. hilft es wenn ich beschreibe was ich machen will.
Ich möchte Schlagworte definieren wie zum Beispiel "Roboter ,Sockel, Adapter" Als Gruppe1
und "Greifer, PNG,...." Als Gruppe2 und so weiter
Nun soll wenn eines der Schlagwörter aus Gruppe1 im Text einer Zelle vorkommt in der Nachbarzelle eine 1 erscheinen.
Es sind halt insgesamt 43 gruppen deswegen wollte ich nicht mit If arbeiten.
Da dachte ich mir wenn ich die gruppen nacheinander durchgehe mit einer Schleife und einer variablen würde es gehen.
Ich glaube aber so langsam ich habe da falsch gedacht.
AW: Mittels schleife Arrays durch laufen lassen
05.07.2017 14:01:50
Alex
Evtl. hilft es wenn ich beschreibe was ich machen will.
Ich möchte Schlagworte definieren wie zum Beispiel "Roboter ,Sockel, Adapter" Als Gruppe1
und "Greifer, PNG,...." Als Gruppe2 und so weiter
Nun soll wenn eines der Schlagwörter aus Gruppe1 im Text einer Zelle vorkommt in der Nachbarzelle eine 1 erscheinen.
Es sind halt insgesamt 43 gruppen deswegen wollte ich nicht mit If arbeiten.
Da dachte ich mir wenn ich die gruppen nacheinander durchgehe mit einer Schleife und einer variablen würde es gehen.
Ich glaube aber so langsam ich habe da falsch gedacht.
Anzeige
AW: Mittels schleife Arrays durch laufen lassen
05.07.2017 14:27:55
Max2
Hallo,
da würde ich einfach eine List erstellen und die Schlagwörter in eine Tabelle schreiben.
Hier ein Beispiel: https://www.herber.de/bbs/user/114707.xlsm
Und hier nur der Code:
Option Explicit
Private ws As Worksheet
Sub CheckValues()
Dim myList As New ArrayList
Dim cRow As Long, i As Long
Dim rng As Range, c
Set ws = ThisWorkbook.Sheets("wörter")
CreateList myList
Set ws = ThisWorkbook.Sheets("search")
With ws
cRow = .Cells(.Rows.Count, 1).End(xlUp).Row
Set rng = .Range(.Cells(1, 1), .Cells(cRow, 1))
For Each c In rng
For i = 0 To myList.Count - 1
If c = myList(i) Then
c.Offset(, 1) = 1
Exit For
End If
Next i
Next c
End With
End Sub
Private Sub CreateList(ByRef myList As ArrayList)
Dim i As Integer
With ws
For i = 1 To 43
myList.Add .Cells(i, 1)
Next i
End With
End Sub
Das ist nur ein Beispiel, der Code ist einfach schnell dahin geschrieben und über
Geschwindigkeit o.ä. habe ich mir da keine Gedanken gemacht.
Funktionieren tut es.
Anzeige
AW: Mittels schleife Arrays durch laufen lassen
05.07.2017 14:28:48
Alex
Ich habe mal ein Beispiel wie ich das als Alternative Lösen würde:

For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 4).Value Like "*greifer*" Or Cells(i, 4).Value Like "*PNG*" Then
Cells(i, 6).Value = 15
End If
Für jede gruppe einen If-block schreiben
Next i

AW: Mittels schleife Arrays durch laufen lassen
05.07.2017 14:35:19
firmus
Hi Alex,
das geht schon, nur hast Du es etwas unglücklich ausgedrückt.
Mein Ansatz wäre:
1. Schreib die Schlagworte in eine Blatt
Spalte A: das Schlagwort
Spalte B: die dazugehörige Gruppe
2. Durchsuche deine Zelle (fix)mit den Schlagworten (via Loop)
3. Wenn das Schlagwort gefunden ist, nimm aus Spalte B die Gruppe und platziere sie neben
deinem Zellwert.
4. Zu beachten:
a) INSTR für den Search würde sich anbieten
b) Was soll passieren, wenn ein Schlagwort in zwei Gruppen vorkommt? Welche Gruppe nehmen?
c) Was soll passieren, wenn mehr als ein Schlagwort gefunden wird?
Hoffe das hilft dir in deiner Struktur weiter, das Coding ist dann recht einfach.
Gruß
Firmus
Anzeige
AW: Mittels schleife Arrays durch laufen lassen
06.07.2017 07:24:46
Alex
Hallo an Alle nochmals,
vielen dank dafür.
ich bastle immer noch daran rum. die Ansätze habe ich aber genutzt.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige