如何在VBA中将变量插入公式

11

有人能解决这个问题吗?

Sub test

Dim i as integer

For I = 1 to 10
   ActiveCell.Offset(0, 2).Formula = "=Sum(E15,&i&)"
Next I

End Sub

1
你需要把 i 从引号中取出来。但是你想要计算的是什么 Sum - Shai Rado
2个回答

11

您的实际目标不明确

您可能想从这段代码开始

Sub test()
    Dim i As Integer

    For i = 1 To 10
       cells(i, 4).Formula = "=Sum(E" & i & ":E15)"
    Next
End Sub

并根据您的需求进行调整,需要知道以下内容:

  • 它当前在单元格"D1:D10"中写入

    因为 cells(i, 4) 引用第四列(即列 "D")的单元格,其中i是行号,我们正在循环中,其中i从1到10循环。

    所以如果:

    • 您想引用不同的列,则只需将 4 更改为正确的列索引

    • 您想引用不同的行,则只需将 i 更改为正确的行索引(如果您需要迭代1到10但要从第3行开始写入,则可能是一些i+2

  • 这些单元格中写入的公式为:

    在 D1 中为 =SUM(E1:E15),

    在 D2 中为 =SUM(E2:E15),

    ....

    在 D10 中为 =SUM(E10:E15)

    因此,只需将 "=Sum(E" & i & ":E15)" 更改为您实际的需求即可


实际上我尝试过这个"=Sum(E" & i & ":E15)",但是我忘记在&和"i"之间留空格了。这就是我无法让这段代码工作的原因>< - gonzalloe
好的。那么您可能想通过点击答案旁边的复选标记将其从灰色变为填充状态来接受答案。谢谢! - user3598756

7

你很接近了,试图使用和号(&)来连接字符串。

ActiveCell.Offset(0, 2).Formula = "=Sum(E15," & i & ")"

使用&符号将字符串合并,而不是在字符串内部使用它。


1
公式=SUM(E15,1)的目的是什么? - Shai Rado
1
谢谢,如果这是被接受的答案,请标记一下... @ShaiRado,我同意不清楚OP想要实现什么,但这是他们特定问题的解决方案 :) - Wolfie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接