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

Array/Matrix Inhalte einfügen

Array/Matrix Inhalte einfügen
30.11.2020 14:57:47
David
Hallo zusammen,
folgendes Problem: Ich soll in einer Matrix/Array in der 2ten Spalte die Rendite von den Aktienkursen (1 Spalte) mit der von mir selbst geschriebenen Funktion berechnen. Mein Code sieht wie folgt aus:
Option Explicit
Option Base 1
'Funktion erstellen

Function Tagesrendite(KursHeute As Integer, KursGestern As Integer) As Variant
Tagesrendite = (KursHeute - KursGestern) / KursGestern
End Function


Sub Aufgabe2()
Dim Matrix(1 To 20, 1 To 3) As Integer
Matrix(1, 1) = 10
Matrix(2, 1) = 12
.....
Matrix(20,1)=15
'Mein Ansatz wäre nun beispielhaft
Matrix(1, 2) = 0
Matrix(2, 2) = Tagesrendite(Matrix(2, 1), Matrix(1, 1))
Matrix(3, 2) = Tagesrendite(Matrix(3, 1), Matrix(2, 1))
Debug.Print (Tagesrendite(Matrix(2, 1), Matrix(1, 1))) 'funktioniert einwandfrei(Ergebnis wird mir angezeigt)
Debug.Print (Matrix(3, 2)) ' funktioniert nicht!, es zeigt mir nur 0 an
End Sub

Ich verstehe nicht so recht wieso es nicht funktioniert, dass es den Wert in die Matrix übernimmt.
Mir ist aufgefallen, dass ich Matrix als Integer also ganze Zahl spezifiert habe, rauskommen tun aber Komma Zahlen kann es daran liegen dass er sie sozusagen automatisch zu 0 macht ?
Anways, ich hab auch probiert es umzuschreiben also die Matrix auf As Double, jedoch taucht _
hierbei erneut ein Problem auf bei mir: "Argumenttyp ByRef unverträglich" und die Zeile wo ich _
die Prozedur erstelle '( Sub Aufgabe2() wird mir gelb markiert)

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array/Matrix Inhalte einfügen
30.11.2020 15:04:08
ralf_b
man man man,
und wo ist deine Anpassung?
was soll denn deiner Meinung nach in (Matrix(3, 2)) drin sein?
was steht in Matrix(3, 1)?
AW: Array/Matrix Inhalte einfügen
30.11.2020 15:15:15
David
Die Werte sind hierbei willkürlich, spielen also keine Rolle.
Es geht mir darum, dass es die Formel nicht anwendet.
Rauskommen müsste bei z.B. Matrix(2, 2) = 0,2 (also (12-10)/10)
für (mit beispielhaft Matrix(3,1)=14) Matrix(3,2)=(12-14)/10 = -0,2
Es zeigt mir eben nur null an wenn ich den debug.print Befehl ausführe
AW: Array/Matrix Inhalte einfügen
30.11.2020 15:24:01
ralf_b
in deinem beispielhaften code fehlt die Zuweisung zu Matrix(3,1). Also ist (3,1) = nichts
und das mit den Ganzzahlen hast du ja schon verstanden. Nur muß man dann auch alle Beteiligten anpassen.
deshalb wie sieht dein Anpassungsversuch aus?
Anzeige
AW: Array/Matrix Inhalte einfügen
30.11.2020 15:32:15
David

Sub Aufgabe2()
Dim Matrix(1 To 20, 1 To 3) As Double
Matrix(1, 1) = 10
Matrix(2, 1) = 12
Matrix(3, 1) = 13
Matrix(4, 1) = 15
Matrix(5, 1) = 17
Matrix(6, 1) = 16
Matrix(7, 1) = 11
Matrix(8, 1) = 10
Matrix(9, 1) = 13
Matrix(10, 1) = 14
Matrix(11, 1) = 12
Matrix(12, 1) = 18
Matrix(13, 1) = 20
Matrix(14, 1) = 10
Matrix(15, 1) = 13
Matrix(16, 1) = 16
Matrix(17, 1) = 18
Matrix(18, 1) = 15
Matrix(19, 1) = 13
Matrix(20, 1) = 19
'Wie gesagt willkürliche Zahlen
Matrix(1, 2) = 0
Matrix(2, 2) = Tagesrendite(Matrix(2, 1), Matrix(1, 1))
Matrix(3, 2) = Tagesrendite(Matrix(3, 1), Matrix(2, 1))
'beispielhaft Anzeigen lassen
Debug.Print (Matrix(3, 2))
End Sub
'so hätte ich es gerne, dass er also die Formel benutzt und die Argumente der ersten Spalte der _ Matrix. Nun da ich es als Double deklariert habe, funktioniert es nicht mehr. Fehlermeldung "Argumenttyp ByRef unverträglich" und die Prozedur '(

Sub Aufgabe2() wird gelb markiert)

Anzeige
AW: Array/Matrix Inhalte einfügen
30.11.2020 15:26:14
peterk
Hallo
Du solltest Deine Matrix als "Double" definieren (0,2 Integer = 0)
AW: Array/Matrix Inhalte einfügen
30.11.2020 15:27:02
Yal
ja, genau das
Function Tagesrendite(ByVal KursHeute As Integer, ByVal KursGestern As Integer) As Variant
Tagesrendite = (KursHeute - KursGestern) / KursGestern
End Function
Sub Aufgabe2()
Dim Matrix(1 To 20, 1 To 3) As Double
For i = 1 To 20
Matrix(i, 1) = 9 + i
Next i
For i = 2 To 20
Matrix(i, 2) = Tagesrendite(Matrix(i, 1), Matrix(i - 1, 1))
Next i
For i = 1 To 20
Debug.Print Matrix(i, 1), Format(Matrix(i, 2), "#,##0.00")
Next i
End Sub
Viel Erfolg
Yal
AW: Array/Matrix Inhalte einfügen
30.11.2020 15:41:04
David
Wunderbare Antwort!
Hat mir sehr weitergeholfen dankeschön :)
Anzeige
Vielen Dank für die Rückmeldung. oT
01.12.2020 08:10:28
Yal

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige