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

Datenfeld - Eintrag löschen

Datenfeld - Eintrag löschen
21.07.2005 13:47:39
Sven
Hallo Leute.
Angenommen ich habe eine Datenfeldvariable mit 3 Einträgen. Und wenn mir der 2. Eintrag nicht gefällt, will ich ihn aus der Datenfeldvarialbe verbannen, sodass diese Variable nur noch aus dem ersten und letzten Eintrag besteht.
Etwa so :

Private Sub Einträge_aus_Unterblöcken_löschen()
Dim Testvariable() As String
ReDim Testvariable(1 To 3)
Testvariable(1) = "aaa"
Testvariable(2) = "bbb"
Testvariable(3) = "ccc"
If Testvariable(2) = "bbb" Then Testvariable(2).Delete
End Sub

Wie geht sowas ?
Bin mal wieder sehr gespann und danke herzlich im Voraus!

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

Betreff
Datum
Anwender
Anzeige
AW: Datenfeld - Eintrag löschen
21.07.2005 13:52:00
Nepumuk
Hi,
die einzige Möglichkeit, umschaufeln in ein anderes Array.
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Datenfeld - Eintrag löschen
21.07.2005 14:12:59
Lars
Hi!
Kann man nicht einfach was machen mit!
filter
criterial 1
criterial 2
criterial 3
criterial 4
end
?
AW: Datenfeld - Eintrag löschen
21.07.2005 14:36:55
Nepumuk
Hi,
mit Filter ist doch viel zu langsam. Mal ein Beispiel. Erst wird ein Array mit den Werten von 1 bis 10.000 gefüllt. Dann wird in zwei Schritten der Wert 5000 aus den Array1 entfernt indem erst die Werte 1 bis 4.999 und dann 5.001 bis 10.000 in ein zweites Array umgeschaufelt. Anschließend wird das Array2 wieder nach Array1 zurückgeschrieben.
Public Sub test()
    Dim iArray1() As Integer
    Dim iArray2(1 To 9999) As Integer
    Dim iIndex As Integer
    Dim sTime As Single
    Redim iArray1(1 To 10000) As Integer
    For iIndex = 1 To 10000
        iArray1(iIndex) = iIndex
    Next
    sTime = Timer
    For iIndex = 1 To 4999
        iArray2(iIndex) = iArray1(iIndex)
    Next
    For iIndex = 5001 To 10000
        iArray2(iIndex - 1) = iArray1(iIndex)
    Next
    Redim iArray1(1 To 9999) As Integer
    For iIndex = 1 To 9999
        iArray1(iIndex) = iArray2(iIndex)
    Next
    MsgBox Timer - sTime
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Datenfeld - Eintrag löschen
21.07.2005 21:23:12
MichaV
Hallo Nepumuk,
"die einzige Möglichkeit, umschaufeln in ein anderes Array"
die andere Möglichkeit ohne Hilfsarray und mindestens 2x schneller:

ReDim iArray1(1 To 10000) As Integer
'3.Element löschen
For iIndex = 3 To Ubound(iArray1) - 1
iArray1(iIndex) = iArray1(iIndex + 1)
Next iIndex
ReDim Preserve iArray1(1 To Ubound(iArray1)-1)

Gruß- Micha
AW: Datenfeld - Eintrag löschen
21.07.2005 21:26:42
Nepumuk
Hi Micha,
wieviel Millisekunden sind 0 ms geteilt durch 2 ? :-)
Gruß
Nepumuk
AW: Datenfeld - Eintrag löschen
21.07.2005 21:54:08
MichaV
oooch Menno! Erbsenzählerei ;o)
Ich hab Dein Werk noch in eine For x= 1 to 1000 Schleife gepackt. Da wirds dann messbar.
Außerdem spare ich durch das Weglassen des Hilfsarrays Speicher, der mir nun für eine weitere Dimension meines Variantarrays zur Vermeidung von benutzderdefinierten Datentypen zur Verfügung steht ;o)
Gruß- Micha
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige