我正在处理VBA宏,在excel工作表上操作数据。我有股票的收盘价,需要收集EMA (指数移动平均)序列。我需要将相同的几个公式迭代100多次,但分别针对单元格。例如,第一次迭代将是=AVERAGE(D153:D164)
,然后紧接着是=(2/13)*D165+(11/13)*E164
,它的格式将被复制下来(我将这样做)。我需要每隔70行执行一次这些计算,以=AVERAGE(D8973:D8984)
& (2/13)*D8985+(11/13)*E8984
结尾。有没有人能帮我推导出一个正常运行的宏?非常感谢您的帮助。
编辑:更具体地说,我需要将行号作为变量传递到公式中。再次感谢你。
发布于 2018-05-29 12:42:04
假设第一个公式是相同的,并且您总是递增相同的行数(70),则此代码应该可以工作。您可以更改我的一些初始假设,例如起始单元格、迭代次数等。
Sub EMAmakeAFunction()
'''''These can be changed as you need
Dim numberOrRowsToSkip As Integer: numberOFRowsToSkip = 70
Dim TrialsToExecute As Integer: TrialsToExecute = 1000
Dim firstFormula As Range: Set firstFormula = Range("D165")
Dim secondFormula As Range: Set secondFormula = Range("D166")
''''Rest of code should be pretty stable of above assumptions are correct.
Dim i As Integer
For i = 1 To TrialsToExecute
firstFormula.Offset(i * numberOFRowsToSkip).FormulaR1C1 = _
firstFormula.FormulaR1C1
secondFormula.Offset(i * numberOFRowsToSkip).FormulaR1C1 = _
secondFormula.FormulaR1C1
Next i
End Sub
https://stackoverflow.com/questions/50573805
复制相似问题