Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
936to940
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
936to940
936to940
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

einzelnen Wert aus Array löschen

einzelnen Wert aus Array löschen
24.12.2007 17:00:00
Franc
Hi,
ich habe ein Array zum Beispiel
x = Array("a", "b", "c", "d", "e")
Per Zufallszahl wird daraus ein Wert ermittelt also sagen wir 2
Das wäre in dem Fall "c".
Wie stelle ich es an, dass danach der Wert "c" rausgelöscht wird und der Rest drinbleibt?
vorher
x = Array("a", "b", "c", "d", "e")
nachher
x = Array("a", "b", "d", "e")

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

Betreff
Datum
Anwender
Anzeige
AW: einzelnen Wert aus Array löschen
24.12.2007 17:32:00
Ramses
Hallo
das geht z.B. so
Option Explicit

Sub test()
    Dim myArr As Variant, tmpArr As Variant
    Dim tmpStr As String
    Dim Qe As Variant, i As Integer, n As Integer
    myArr = Array("a", "b", "c", "d", "e")
    For i = 0 To UBound(myArr)
        tmpStr = tmpStr & myArr(i) + ";"
    Next i
    'Im Beispiel alles ohne Fehlerprüfung :-)
    Qe = InputBox("Welcher Wert soll entfernt werden:" & vbCrLf & _
    tmpStr & vbCrLf & "Bitte den Buchstaben eingeben", "Array Wert löschen", "c")
    ReDim tmpArr(UBound(myArr) - 1)
    n = 0
    'Array temporär umschreiben
    For i = 0 To UBound(myArr)
        If myArr(i) <> Qe Then
            tmpArr(n) = myArr(i)
            n = n + 1
        End If
    Next i
    'Altes Array löschen
    Erase myArr
    'Meldestring leeren
    tmpStr = ""
    'Originales Array neu dimensionieren
    ReDim myArr(UBound(tmpArr))
    'Werte aus dem temporären Array in das Original-Array umschreiben
    myArr = tmpArr
    For i = 0 To UBound(myArr)
        tmpStr = tmpStr & myArr(i) + ";"
    Next i
    MsgBox "Neues Array: " & Left(tmpStr, Len(tmpStr) - 1)
End Sub

Gruss Rainer

Anzeige
AW: einzelnen Wert aus Array löschen
24.12.2007 17:49:00
Franc
Das alles nur um einen Wert zu entfernen ... ^^
Habs für meinen Fall angepasst und funktioniert einwandfrei.
Danke für die Hilfe.

AW: einzelnen Wert aus Array löschen
24.12.2007 21:34:21
MichaV
Hi Rainer,
was hast Du gegen die Join- Funktion?
Gruß und ein frohes Fest! Micha

AW: einzelnen Wert aus Array löschen
24.12.2007 22:07:30
Ramses
Hallo
"...was hast Du gegen die Join- Funktion?.."
Nix,... aber wer auf die Rennstrecke will, muss erst mal fahren lernen :-)
Gruss Rainer

AW: für Fahrschüler
24.12.2007 22:27:00
MichaV
Hallo,
wenn schon lernen, dann aber bitte effektiv:


Option Explicit
Sub test()
Dim myArr As Variant
Dim i As Integer, x As Integer
myArr = Array("a", "b", "c", "d", "e")
'der 2. Wert soll gelöscht werden
x = 2
x = x - 1 'denn der "zweite" Wert hat den Index 1, und nicht 2
For i = x To UBound(myArr) - 1
    'alle Werte ab dem "zweiten" Wert um eins nach vorne schieben
    myArr(i) = myArr(i + 1)
Next i
'und den letzten Wert löschen
ReDim Preserve myArr(UBound(myArr) - 1)
MsgBox Join(myArr, vbCrLf)
End Sub


Gruß- Micha
PS: Rückmeldung wäre nett.

Anzeige
F1
24.12.2007 22:47:00
Josef
Hallo Micha, Servus Rainer,
und dann gibt's noch FILTER().
Sub test2()
Dim myArr As Variant
Dim x As Integer, s As Variant

myArr = Array("a", "b", "c", "d", "e")

Randomize

'Zufälligen Eintragwählen (Index)
x = Int((UBound(myArr) + 1) * Rnd)

'Zufälliger Eintrag
s = myArr(x)

'Eintrag Löschen
myArr = Filter(myArr, s, False)

MsgBox Join(myArr, vbCrLf)

End Sub

Gruß Sepp

Anzeige
AW: F1
24.12.2007 23:00:00
MichaV
Hallo Sepp,
danke, wieder was gelernt.
Gruß- Micha

Das ist wirklich cool...
24.12.2007 23:09:00
Ramses
Hallo Sepp
... das kannte ich auch noch nicht.
Gruss Rainer

AW: für Fahrschüler
24.12.2007 23:18:00
Ramses
Hallo Micha
Schöne Variante,... aber eben auch nur eine Variante.
Ich ging das ganze etwas pragmatischer an,... hast du ein Problem damit ?
Das Ergebnis stimmt sowohl bei Dir wie bei mir.
Aber was solls, heute ist schliesslich Weihnachten. Dann kriegt er eben gleich 3 Variationen serviert.
Gruss Rainer

AW: Schöne Variante.....
25.12.2007 00:14:23
Gerd
Guten Morgen,
welche diejenige ist , die auch bei mehreren gleichen Werten im Array, nur den Wert mit der vorgegebenen Position herausnimmt.
Grüße Gerd
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge