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

Array verändern/erweitern

Array verändern/erweitern
12.06.2004 20:06:05
NE
Hallo zusammen,
mal eine Frage, wie kann ich aus einem Array das so ausschaut
arr(0)=1
arr(1)=2
arr(2)=3
arr(3)=4
arr(4)=5
arr(5)=6
sowas machen:
arr(0)=1
arr(1)=2
arr(2)=0
arr(3)=3
arr(4)=4
arr(5)=0
arr(6)=5
arr(7)=6
arr(8)=0
also immer nach zwei Werten einen Wert mit 0 hinzufügen.
Hab' schon rumgedoktert, sitz aber total auf der Leitung momentan.
Denke nun bald, das geht überhaupt nich ...

Sub z()
Dim i%, arr#(0 To 5)
For i = 0 To 5
arr(i) = i + 1
Next
'crazy arr
End Sub


Sub crazy(x)
Dim i%
For i = LBound(x) To UBound(x) Step 2
ReDim Preserve x(0 To i + 1)
x(i + 1) = 0
Next
End Sub

Gruss
Nancy

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

Betreff
Datum
Anwender
Anzeige
AW: Array verändern/erweitern
K.Rola
Hallo,
meinst du das so?
Option Explicit
Option Base 1

Sub Beispiel()
Dim arr(30) As Long, i As Long, j As Long
For i = 1 To 30
If i Mod 3 = 0 Then
arr(i) = 0
Else
j = j + 1
arr(i) = j
End If
Next
End Sub

Gruß K.Rola
AW: Array verändern/erweitern
NE
Hi K.Rola :-)
Dank Dir erstmal for codez,
So mein ich das ... is aber eben nur theoretisch so machbar, leider.
Das Problem an der Kiste ist praktisch so, dass arr(30) nicht bekannt ist
und ich arr(?) nicht fülle, sondern es wurde gefüllt,
und ist somit für mich gegeben ;-)
Ich müsste also arr(?) umbiegen in ein neues Array,
irgendwie sowas dann arrNeu(? + ?/3) oder so
Hoffe das kommt irgendwie rüber, was ich mein,
und probier scho ne Ecke rum, hab' aber absolut keine Peilung mehr,
sowas geht auch nich:

Sub z()
Dim i%, arr#(0 To 5)
For i = 0 To 5
arr(i) = i + 1
Next
crazy arr
End Sub


Sub crazy(oldArr)
Dim i%, newArr
newArr = oldArr
For i = LBound(oldArr) To UBound(oldArr) Step 2
ReDim Preserve newArr(0 To i + 1)
newArr(i + 1) = 0
Next
oldArr = newArr
End Sub

Gruss
Nancy
Anzeige
AW: Array verändern/erweitern
K.Rola
Hallo,
ich beginne zu verstehen, glaub ich.
Du hast ein Array, du Glückspilz, sowas suche ich seit Jahren, von dem
du die Dimension nicht kennst, willst es in ein neues Array umschaufeln
und nach jedem zweiten Element eine 0 einbauen? So richtig?
Gruß K.Rola
AW: Array verändern/erweitern
K.Rola
Hallo,
hab jetzt gerade erst die Antwort von FP gesehen, das zweite Beispiel
sollte funktionieren.
Gruß K.Rola
Egal, trotzdem thx@you
NE
Hi K.Rola,
ja, grade gelesen & probiert gehabt.
Danke nochmals trotzdem ;-)
Gruss Nancy
AW: Array verändern/erweitern
FP
Hallo Nancy,
und warum nicht so?
Public arr1(33) As Integer
Public arr2() As Integer

Sub FillArr1()
Dim intC1     As Integer
For intC1 = 0 To UBound(arr1)
arr1(intC1) = Fix(Rnd * 99) + 1
Next
ResizeArr arr1()
End Sub


Sub ResizeArr(arr)
Dim intC1     As Integer
Dim intC2     As Integer
ReDim arr2(Fix(UBound(arr) * 1.5) + 2)
For intC1 = 0 To UBound(arr)
If intC2 Mod 3 = 0 Then intC2 = intC2 + 1
arr2(intC2) = arr(intC1)
intC2 = intC2 + 1
Next
End Sub

Servus aus dem Salzkammergut
Franz
Anzeige
AW: Array verändern/erweitern
FP
Hallo Nancy,
meinst Du das so?

Sub Nancy1()
Dim arr(11) As Integer
Dim intC    As Integer
Dim intMax  As Integer
For intC = 0 To UBound(arr)
If intC Mod 3 Then
intMax = intMax + 1
arr(intC) = intMax
End If
Next
End Sub

oder so ? ( bestehendes Array vergrössern )
Public arr1(7) As Integer
Public arr2() As Integer

Sub Nancy2()
Dim intC1     As Integer
Dim intC2     As Integer
For intC1 = 0 To UBound(arr1)
arr1(intC1) = Fix(Rnd * 99) + 1
Next
ReDim arr2(UBound(arr1) + Fix(UBound(arr1) / 2) + 1)
For intC1 = 0 To UBound(arr1)
If intC2 Mod 3 = 0 Then intC2 = intC2 + 1
arr2(intC2) = arr1(intC1)
intC2 = intC2 + 1
Next
For intC2 = 0 To UBound(arr2)
Debug.Print intC2, arr2(intC2)
Next
End Sub

Servus aus dem Salzkammergut
Franz
Anzeige
AW: Array verändern/erweitern
NE
Hallo Franz,
'Nancy2' kommt dem doch schon sehr nahe, vümoas Danke :-)
Statt dem "Leer" müsste zwar noch ne 0 rein und item(0) darf auch nich 0 bzw. leer sein,
aber Du hast mir da schonmal nen guten Ansatz gegeben,
mal schauen ob ich die Nuss noch selber knacken kann ;-)
Muchas Gracias
Gruss Nancy

AW: Array verändern/erweitern
FP
Hallo Nancy,
dazu brauchst Du nur die Zeile mit MOD wie folgt ersetzen
If (intC2 + 1) Mod 3 = 0 Then intC2 = intC2 + 1
dann wird Element 0 und 1 belegt 2 nicht, 3 + 4 belegt, 5 nicht ...
Servus aus dem Salzkammergut
Franz
perfekt
NE
Dank Dir nochmal Franz :-)
Gruss Nancy
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige