Я написал код, который предназначен для расчета дисперсии растущего портфеля и расчета дисперсии 5000 раз для каждого элемента, включенного в портфель. Код работает так, как должен, и проблем нет.VBA: Передача значений на разные листы
Где я немного обеспокоен тем, что существует 6 различных матриц соизбрания, и код должен работать на каждом из них.
Я включил код в a для каждого цикла, чтобы выбрать и использовать 6 различных матриц совпадений, и он должен работать.
Однако я хотел бы, чтобы выход (дисперсия портфеля) размещался в 6 разных заранее определенных рабочих листах и не был таким же, как в данный момент.
Моя первая мысль состояла в том, чтобы использовать массив, чтобы зацикливать, хотя каждый из 6 новых листов, но я не знаю, как его реализовать.
Я был бы очень признателен за любые рекомендации.
Код выглядит следующим образом:
Sub kovariansmatrice()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'Dim Var As Long
Dim k, j As Integer
Dim Random As Double
Dim i As Integer
Dim Fifth As Double
Dim varians As Variant
Dim Worksheet As Variant
Dim Worksheets As Variant
Dim outputs As Variant
Worksheets = Array("KVM1D", "KVM2D", "KVM3D", "KVM1M", "KVM2M", "KVM3M")
outputs = Array("Kovar1D", "Kovar2D", "Kovar3D", "Kovar1M", "Kovar2M", "Kovar3M")
For Each Worksheet In Worksheets
For k = 100 To 150 Step 5
Cells(2, 496) = k
For j = 1 To 5000
For i = 1 To 494
Randomize
Random = Rnd()
Worksheets("Kovarians").Cells(3, i).Value = Random
Next i
Fifth = WorksheetFunction.Large(Sheets("Kovarians").Range("A3:BHK3"), k)
Worksheets("Kovarians").Cells(5, 1).Value = Fifth
varians = Application.MMult(Application.MMult(Sheets("Kovarians").Range("A2:BHK2"), Sheets("Kovarians").Range("B11:BHL1581")), Application.Transpose(Sheets("Kovarians").Range("A2:BHK2")))
Worksheets("Kovarians").Cells(5, 3).Value = varians
Calculate
Sheets("Sheet1").Cells(j, k) = Sheets("Kovarians").Cells(5, 3)
Next j
Next k
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Next Worksheet
End Sub
Спасибо Робин, у меня было немного проблемы с получением кода в правом –