首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >迭代EMA公式VBA

迭代EMA公式VBA
EN

Stack Overflow用户
提问于 2018-05-29 05:54:43
回答 1查看 467关注 0票数 -2

我正在处理VBA宏,在excel工作表上操作数据。我有股票的收盘价,需要收集EMA (指数移动平均)序列。我需要将相同的几个公式迭代100多次,但分别针对单元格。例如,第一次迭代将是=AVERAGE(D153:D164),然后紧接着是=(2/13)*D165+(11/13)*E164,它的格式将被复制下来(我将这样做)。我需要每隔70行执行一次这些计算,以=AVERAGE(D8973:D8984) & (2/13)*D8985+(11/13)*E8984结尾。有没有人能帮我推导出一个正常运行的宏?非常感谢您的帮助。

编辑:更具体地说,我需要将行号作为变量传递到公式中。再次感谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-29 12:42:04

假设第一个公式是相同的,并且您总是递增相同的行数(70),则此代码应该可以工作。您可以更改我的一些初始假设,例如起始单元格、迭代次数等。

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50573805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档