我正在尝试对我检查过的所有值求和。对于
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))"
我得到编译错误。谁能帮我。
Dim lastrow As Long
lastrow = Cells(Rows.Count, "A").End(xlUp).Row
Range("D1").Select
ActiveCell.Formula = "=SUMIF(B1:B5,TRUE,A1:A5)" 'Please help me to convert into Range(cells(1,2),cells(lastrow,2)),True,Range(cells(1,3),cells(lastrow,3))
答案 0 :(得分:0)
您的公式语法错误。您正在Excel公式中使用VBA引用(将会细分要点):
ActiveCell.Formula = _
"=SUMIF( _ 'Application
Range(cells(1,2),cells(lastrow,2)) _ 'VBA
,TRUE, _ 'Application
Range(cells(1,3),cells(lastrow,3)) _ 'VBA
" 'Application
要使公式显示在单元格中,您将显示为:
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)))
与您的代码更改有关,尽管您在代码中列出了第3(c)列,但您以前曾使用第1(a)列作为总和范围...在我的代码示例中,我从工作{{ 1}}功能。