Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Schleife gibt nur den letzten Wert wider

Forumthread: Schleife gibt nur den letzten Wert wider

Schleife gibt nur den letzten Wert wider
16.12.2020 12:43:02
Patrick
Hallo zusammen,
ich möchten den rollierenden Zusammenhang zwischen zwei Kennzahlen über den Zeitverlauf messen.
Dazu habe ich folgendes Makro geschrieben:
[quote]
Sub rolling_correlations()
Dim Arbeitsmappe As Workbook
Dim Datenbasis As Worksheet
Dim Ziel As Worksheet
Dim Bereich As Range
Dim WsF As WorksheetFunction
Dim letzteZeile As Long
Dim letzteZeile1 As Long
Dim i, n As Long
Set Arbeitsmappe = ThisWorkbook
Set Datenbasis = Arbeitsmappe.Worksheets("Time_Series")
Set Ziel = Arbeitsmappe.Worksheets("Correlation")
Set WsF = Application.WorksheetFunction
Datenbasis.Activate
letzteZeile = ActiveSheet.Cells(Rows.Count, 40).End(xlUp).Row
Ziel.Activate
letzteZeile1 = ActiveSheet.Cells(Rows.Count, 27).End(xlUp).Row
'Berechnung der rollierenden Korrelationen
Datenbasis.Activate
For y = 3 To letzteZeile1
For i = 364 To letzteZeile
Ziel.Cells(y, 28).Value = WsF.Correl(Range(Cells(i - 11, 41), Cells(i, 41)), Range( _
Cells(i - 11, 42), Cells(i, 42)))
Next
Next
End Sub

[/quote]
Mein Problem ist, dass zwar die Berechnung richtig ist, aber in allen Zellen (y) der letzte berechnete Wert steht.
Ich habe mir das jetzt ca. eine Stunde angesehen und habe einfach ein Brett vor dem Kopf.
Würde mich freuen, wenn mich einer von euch unterstützen könnte.
BG
Patrick
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife gibt nur den letzten Wert wider
16.12.2020 13:47:32
Yal
Hallo Patrick,
Du lasst es zwar von i = 364 bis Letzte berechnen, schreibt aber alles auf Cells(y, 28) während y sich nicht bewegt.
Du bekommst dann nur soviele Ergebnisse wie LetzteZeile1 - 3 + 1 (übergeordnete Schleife).
Zwecks Lesbarkeit schlage ich folgendes vor (ändert nicht am Problem):
For y = 3 To letzteZeile1
For i = 364 To letzteZeile
Set R1 = Datenbasis.Range(Cells(i - 11, 41), Cells(i, 41))
Set R2 = Datenbasis.Range(Cells(i - 11, 42), Cells(i, 42))
Ziel.Cells(y, 28).Value = WsF.Correl(R1, R2)
Next
Next
VG Yal
Anzeige
AW: Schleife gibt nur den letzten Wert wider
16.12.2020 14:08:01
Patrick
Die Lesbarkeit ist wirklich deutlich besser. Nur hast du natürlich recht. Das Problem bleibt :-(
AW: Schleife gibt nur den letzten Wert wider
16.12.2020 14:25:27
Yal
Wärst Du in der Lage, eine Beispieldatei hochzuladen?
Nachzubauen ist hier nicht sinnvoll.
VG
Yal
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige