如何使用引用另一个单元格的VBA添加公式?

时间:2017-04-01 08:38:15

标签: excel-vba excel-formula vba excel

我搜索但没找到我要找的东西。 我的目标是拥有大量的单元格,显示其他单元格中其他单元格的价值,如简单的“= 1月!BP $ 43”。 但是我想用循环添加它,这里有一个简化的例子:

  For sorte = 0 To 5
    For mois = 0 To 11
        Sheets(2).Range(4+k, 1 + mois + j).Formula = "=Sheets(3 + mois).Cells(40+i, 2 + sorte)"
    Next
    j = j + 13
    i=i+15
    k=k+1
Next

我尝试了没有“”周围的“Sheets ...”“并且它可以工作,但只是插入值而不是公式。 任何的想法? 非常感谢

PS:j,i,k就是为了表明我还有其他变量来改变位置。

2 个答案:

答案 0 :(得分:0)

请记住,引号之间的所有内容都将复制为字符串。每当要使用变量的值而不是变量名称时,都需要关闭引号:

For mois = 0 To 11
    Sheets(2).Range(4+k, 1 + mois + j).Formula = "=Sheets(" & 3 + mois & ").Cells(" & 40+i & "," & 2 + sorte& ")"
Next

然而,仅仅使用Excel并复制到您需要的单元格会更容易吗?

答案 1 :(得分:0)

您需要使用Sheets(3 + mois).Name放置工作表名称,并且最容易使用R1C1表示法引用行和列:

For sorte = 0 To 5
    For mois = 0 To 11
        Sheets(2).Cells(4+k, 1 + mois + j).FormulaR1C1 = "='" & Sheets(3 + mois).Name & "'!R" & (40+i) & "C" & (2 + sorte)
    Next
    j = j + 13
    i=i+15
    k=k+1
Next