VBA excel,Sumif动态行

VBA excel,Sumif动态行,excel,vba,Excel,Vba,我正在尝试对我检查过的所有值求和。为了 ActiveCell.Formula = "=SUMIF(B1:B5,TRUE,A1:A5)" 但是,在以下情况下,它可以正常工作: ActiveCell.Formula = "=SUMIF(Range(cells(1,2),cells(lastrow,2)),TRUE,Range(cells(1,3),cells(lastrow,3))" 我得到编译错误。谁能帮帮我吗 你的公式语法不好。您正在excel公式中使用VBA引用(将细分点): 为了

我正在尝试对我检查过的所有值求和。为了

ActiveCell.Formula = "=SUMIF(B1:B5,TRUE,A1:A5)" 
但是,在以下情况下,它可以正常工作:

ActiveCell.Formula = "=SUMIF(Range(cells(1,2),cells(lastrow,2)),TRUE,Range(cells(1,3),cells(lastrow,3))" 
我得到编译错误。谁能帮帮我吗



你的公式语法不好。您正在excel公式中使用VBA引用(将细分点):


为了使公式显示在单元格中,您将显示以下内容:

ActiveCell.Formula = "=SUMIF(B1:B" & lastrow & ",TRUE,A1:A" & lastrow & ")" 
如果希望VBA执行此工作,并且只希望输出一个值:

ActiveCell.Value = Application.SUMIF(Range(Cells(1,2),Cells(lastrow,2)),"TRUE",Range(Cells(1,1),Cells(lastrow,1)))


与您的代码更改相关,您以前使用了第1(a)列作为您的总和范围,尽管您在代码中列出了第3(c)列。。。我在我的代码示例中使用了1,来自您的工作
SUMIF
函数。

您的公式语法不好。您正在excel公式中使用VBA引用(将细分点):


为了使公式显示在单元格中,您将显示以下内容:

ActiveCell.Formula = "=SUMIF(B1:B" & lastrow & ",TRUE,A1:A" & lastrow & ")" 
如果希望VBA执行此工作,并且只希望输出一个值:

ActiveCell.Value = Application.SUMIF(Range(Cells(1,2),Cells(lastrow,2)),"TRUE",Range(Cells(1,1),Cells(lastrow,1)))


与您的代码更改相关,您以前使用了第1(a)列作为您的总和范围,尽管您在代码中列出了第3(c)列。。。我在我的代码示例中使用了1,来自您的
SUMIF
函数。

您在这里遇到了一些语法问题。。。您是希望公式显示在单元格中,还是希望单元格只包含值?您在这里遇到了一些语法问题。。。您是希望公式显示在单元格中,还是希望单元格仅具有值?Cyril感谢您的快速帮助!我会尝试一下,并更新你的结果!天哪!它工作得如此神奇!哈哈,非常感谢你的帮助!非常感谢西里尔,谢谢你的快速帮助!我会尝试一下,并更新你的结果!天哪!它工作得如此神奇!哈哈,非常感谢你的帮助!谢谢你,西里尔