函数SUM vba

时间:2018-07-25 11:22:14

标签: excel vba excel-vba

我想使用来自不同列的不同单元格的功能SUM,我使用了这种语法,但是它不起作用,它总是返回0

Sub test(AC As String)
    Sheets("Feuil4").Activate
    Range("A1").Formula = "=SUM(Feuil2!AC10, -Feuil2!AC11)"
End Sub

Sub TEST()
    Call test("B")
End Sub 

我也尝试过:Range("A1").Formula = "=SUM(Feuil2!AC & 10, -Feuil2!AC & 11)" 它也不起作用。

2 个答案:

答案 0 :(得分:0)

此公式

Range("A1").Formula = "=SUM(Feuil2!AC10, -Feuil2!AC11)"

从Feuil2单元AC10中减去表Feuil2单元AC11。

如果您想使用AC作为列名变量,则必须使用

Sub WriteSumFormula(SumColumn As String)
    Sheets("Feuil4").Range("A1").Formula = "=SUM(Feuil2!" & SumColumn & "10, -Feuil2!" & SumColumn & "11)"
End Sub    

还使用描述性变量和函数名称来简化工作并获得更好的可维护代码。您不能命名2个不同的子TEST。名称必须唯一。

然后测试

Sub TestWriteSumFormula()
    Call WriteSumFormula("B")
End Sub

应将公式=SUM(Feuil2!B10, -Feuil2!B11)写入单元格A1。

答案 1 :(得分:0)

以下内容也应该起作用,请记住我已将您的一个重命名,因为它们不能同时被命名为“ TEST”:

Sub TEST(AC As String)
    Sheets("Feuil4").Range("A1").Formula = "=SUM(Feuil2!" & AC & "10, -Feuil2!" & AC & "11)"
End Sub

Sub TESTS() 'renamed this
    Call TEST("B")
End Sub