2017-02-28 588 views
3

任何人都可以解决这个问题吗?如何在VBA中插入变量公式

Sub test 

Dim i as integer 

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

End Sub 
+0

你需要采取的'i'出来的'“'。但什么是你想'Sum'? –

回答

4

你很接近,试图用连字符(&)连接字符串。

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

使用字符串之间的连字号合并他们,而不是里面的字符串。

+0

是什么目的了公式'= SUM(E15,1)'? –

+0

这是工作,非常感谢!!!!! – lcc

+0

谢谢,如果它是公认的答案,那么请标记它以便[email protected],我同意目前还不清楚OP是在努力实现什么,但这是解决他们特定问题的方法:) – Wolfie

0

你可以试试这个问题,以及:

Option Explicit 

Sub TestMe() 

    Dim i As Long 

    For i = 1 To 10 
     ActiveCell.Offset(i, 2).Formula = WorksheetFunction.Sum(i, i) 
    Next i 

End Sub 

这是做它的另一种方式。

1

您的实际目标是不清楚

你可能要开始表单验证码

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)引用了单元格i ñ第4列(即:列“d”)4和i行,我们是一个循环,i通过1至10

    所以如果循环内:

    • 要引用不同的列则只是改变4到正确的列索引

    • 要引用不同的行则只是改变i到适当的行索引(可能有些i+2如果需要通过1迭代到10,但开始从编写行3

  • 写入的那些细胞的formula是:

    =SUM(E1:E15)在D1,

    在D2 =SUM(E2:E15)

    ....

    =SUM(E10:E15)在D10。

    所以只是改变"=Sum(E" & i & ":E15)"到您的实际需求

+0

其实我试过这个“= Sum(E&i&”:E15)“ 但我忘记在&符号之间留出空格,&和“我” 这就是我无法使用此代码的原因>< – lcc

+0

我提供的代码也是如此吗? – user3598756

+0

是的,它适用于我!非常感谢! – lcc