【发布时间】:2020-04-29 08:36:59
【问题描述】:
大家好,我正在用vba做一个宏代码,我想问一下,我如何通过vba宏编写下一个操作。
假设您有一张包含两列的工作表,一列称为“C”,另一列称为“D”,并且该列中的每个单元格都有下一个操作:
ws.Range("D1") = 0
ws.Range("D2") = ws.Range(C2)- ws.Range(C1)
ws.Range("D3") = ws.Range(C3)- ws.Range(C2)
...
ws.Range(Di+1) = ws.Range(Ci+1) -ws.Range(Ci)
如何用 vba 语法编写如下操作:
ws.Range("D:D").FormulaR1C1 = "= R[i+1]C[""C""] - R[i]C[""C""]"
感谢您的帮助。
【问题讨论】:
-
您的操作有自我参考。你不能有 D2 = D2 - D1。您确定这些是您要执行的操作吗?
-
您有理由先生,我的意思是 D2 = C2 -C1 是一个分两列的操作,我将编辑我的问题,谢谢您让我看到
-
ws.Range("D2:D3").Formula = "=C2-C1"? -
不客气。我建议一种解决问题的方法:在应该是的单元格中写下您想要的公式,然后开始录制宏,单击要修改公式的单元格,然后按Enter;停止录制并最终查看它录制的内容。您可以对公式进行逆向工程。这是一种非常好的学习方式。
-
我觉得更像
ws.range("D2:D3").FormulaR1C1 = "=C[-1]-R[-1]C[-1]"