Как добавить следующее в цикл? - PullRequest
1 голос
/ 23 сентября 2019

Я уже некоторое время использую следующий цикл.Не могли бы вы посоветовать, как мне добавить к нему одну строку, чтобы каждый раз, когда я ее запускаю, она запускалась и работала для каждого нового вычисления?

Sub CVaR_R()
Const NUM_TIMES As Long = 1321
Dim ShtCalc As Worksheet, shtData As Worksheet
Dim rngCopy As Range, i As Long
Dim Arr As Variant

Set ShtCalc = Sheets("CVaR")
Set shtData = Sheets("Data")
Set rngCopy = shtData.Range("A1:A375")

   For i = 1 To NUM_TIMES
   Set rngCopy = shtData.Range(shtData.Cells(1, i), shtData.Cells(375, i))
With ShtCalc
   .Range("L5").Resize(rngCopy.Rows.Count, 1).Value = rngCopy.Value

.Calculate

.Range("I" & Cells(Rows.Count, "I").End(xlUp).Row + 1).Value = .Range("G10").Value
End With
Next i
End Sub

Мне нужно добавить следующую строку в код выше, поэтомукаждый цикл меняет значение.

.Range("G10").Formula = "=(1/G5)*SUM(L5:L" & .Cells(3, 7).Value & ")"

Спасибо, Запад

1 Ответ

0 голосов
/ 23 сентября 2019

Я уже понял.

Sub CVaR_R()
Const NUM_TIMES As Long = 1321
Dim ShtCalc As Worksheet, shtData As Worksheet
Dim rngCopy As Range, i As Long
Dim Arr As Variant

Set ShtCalc = Sheets("CVaR")
Set shtData = Sheets("Data")
Set rngCopy = shtData.Range("A1:A375")

   For i = 1 To NUM_TIMES
   Set rngCopy = shtData.Range(shtData.Cells(1, i), shtData.Cells(375, i))
With ShtCalc
   .Range("L5").Resize(rngCopy.Rows.Count, 1).Value = rngCopy.Value
.Range("G10").Formula = "=(1/G5)*SUM(L5:L" & .Cells(3, 7).Value & ")"
.Calculate

.Range("I" & Cells(Rows.Count, "I").End(xlUp).Row + 1).Value = .Range("G10").Value
End With
Next i
End Sub

Проблема была также в формуле (я не заметил, что изначально) в .Cells(3, 7).Value

Спасибо Западу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...