У меня есть очень простая проблема, но почему-то просто не найти ее. Я попытался написать небольшую программу, которая берет данные цены акций с рабочего листа и вычисляет скользящую среднюю его за определенный период времени.VBA: Как вывести расчетное решение в новый рабочий лист?
До сих пор это не было проблемой.
Моей проблема теперь в том, что я хочу, чтобы решение, т.е. скользящего среднего в новом листе в колонке B и эквивалентное stockprices в столбце A.
Я уже написал код для создания нового рабочего листа следующим образом:
Sub CopyToNewSheet()
Selection.Copy
Sheets.Add(After:=Sheets(1)).Name = "MovingAverage"
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
Это прекрасное действие. Следующая часть программы должна теперь быть вычислением скользящей средней. Я попробовал это, который работал также:
Sub CalculateMA(maLength As Integer)
Application.ScreenUpdating = False
Columns("B:B").Delete
Range("B1").Value = "MA" + CStr(maLength)
Range("B1").Offset(maLength, 0).Select
Do While IsEmpty(Selection.Offset(0, -1)) = False
Selection.Value = WorksheetFunction.Average(Range(Selection.Offset(-maLength + 1, -1), Selection.Offset(0, -1)))
Selection.Offset(1, 0).Select
Loop
End Sub
Проблема здесь состоит в том, что это не ставит вычисленное решение в новом листе, но в старую.
Есть ли у вас какие-либо идеи, что мне нужно изменить, чтобы решение было опубликовано на другом листе?
Большое спасибо.
Ваша помощь приветствуется.
Вы пробовали мое предложение, знаете о макросах? –