Datenfelder / Array

Bild

Betrifft: Datenfelder / Array
von: Marcel
Geschrieben am: 22.09.2003 10:53:22

Guten Tag
Ich habe eine Frage betreffend Datenfelder. Wie kann ich den Inhalt einer Excel-Spalte (B) mit N (variable Anzahl) Zeilen als eine Feldvariable abspeichern,diese Variable dann aufrufen, so daß jeder Wert dieser Variablen zum Beispiel mit dem zugehörigen Wert aus Spalte A multipliziert wird.

Es müsste also Feld mit 1 Spalte und variabler Anzahl an Zeilen erstellt werden. MAcht man das mit dem array-Befehl? Handelt es sich in VBA-Sprache um ein dynamisches Feld , muss ich Grenzen angeben ??

So viele Fragen, ..., HILFE !! :-)

Kann mir jemand helfen ??

Bild


Betrifft: AW: Datenfelder / Array
von: Marcel
Geschrieben am: 22.09.2003 11:11:55

Hier der erste wahrscheinliche klägliche Ansatz, funktioniert auch nicht, was mach ich denn falsch ???

Dim S1(0 To 5) As Currency, S2 As Currency
Dim Zähler As Integer
For Zähler = 0 To 5
S1(Zähler) = Cells(Zähler, 2)
Next

For Zähler = 0 To 5
Debug.Print S1(Zähler)

Next


Bild


Betrifft: AW: Datenfelder / Array
von: GerdW
Geschrieben am: 22.09.2003 11:33:17

Gehts dir jetzt um den konkreten Fall der Multiplikation,
dann geht auch einfacher ohne Array?

Gerd


Bild


Betrifft: AW: Datenfelder / Array
von: Marcel
Geschrieben am: 22.09.2003 11:41:04

Hmm, das Problem ist das ich ein Verfahren zu programmieren versuche welches ietriert und die Ergebnisse bis jetzt immer wieder in die Spalte schreibt und wieder rausliest, deshalb hab ich mir gedacht das es mit Feldvariablen schneller und eleganter geht.

Und ich würd gern wissen wie das funktioniert mit Feldvariablen. Prinzipiell bin ich natürlich für jede Lösung dankbar,wenn Du Zeit/Lust hast mir zu schreiben wie das mit Feldvariablen funktionieren könnte, würds mich auch freuen.

weißt Du denn ggf. wie man den Inhalt einer Spalte in einer Feldvariablen abspeichert? Macht man das in der For-Schleife mit der "Cells" Funktion ??

Untenstehendes Beispiel kann das gewünschte nun schon mit dem Wert "4", nicht aber mit dem Inhalt einer Spalte

J = 5

Dim Feld1() As Double
ReDim Feld1(J)
Dim Zähler As Integer
For Zähler = 0 To J
Feld1(Zähler) = 4
Next
For Zähler = 0 To J
Debug.Print Feld1(Zähler)
Next

Gruss
Marcel


Bild


Betrifft: AW: Datenfelder / Array
von: GerdW
Geschrieben am: 22.09.2003 11:51:47

Ich weiß nicht, was das ietriert bedeutet?

Wenn die Größe des Arrays vorher nicht feststeht, kannst du zunächst mal
die letzte Zeile der Spalte ermitteln, dann hast du die Obergrenze.
Option Explicit
Option Base 1

Sub arraybeispiel()
Dim arr() As Double, z As Long, lz As Long
lz = [a65536].End(xlUp).Row
ReDim arr(lz)
For z = 1 To lz
arr(z) = Cells(z, 1)
Debug.Print arr(z)
Next
End Sub


Gerd


Bild


Betrifft: AW: Datenfelder / Array
von: Marcel
Geschrieben am: 22.09.2003 11:56:47

Hallo Gerd
Schönen Dank für die Antwort, probiere ich umgehend aus
Das sollte "iteriert" heissen, Entschuldigung :-)

Die letzte Zeile der Spalte steht aus der begrenzten Anzahl an Messwerten fest.

Wenn ich noch Fragen habe, meld ich mich nochmal, den Zugriff auf die Zellen mit "Cells" hab ich auch probiert, klappt bei mir noch nicht, probier es nochmal
Gruss
Marcel


Bild


Betrifft: AW: Datenfelder / Array
von: Marcel
Geschrieben am: 22.09.2003 12:17:09

Hallo Gerd
Schönen Dank für die Antwort, probiere ich umgehend aus
Das sollte "iteriert" heissen, Entschuldigung :-)

Die letzte Zeile der Spalte steht aus der begrenzten Anzahl an Messwerten fest.

Wenn ich noch Fragen habe, meld ich mich nochmal, den Zugriff auf die Zellen mit "Cells" hab ich auch probiert, klappt bei mir noch nicht, probier es nochmal
Gruss
Marcel


 Bild

Beiträge aus den Excel-Beispielen zum Thema " UserForm zoomen gemäß Bildschirmauflösung"