我在excel中使用了以下代码,将运行时错误视为需要的对象。
Dim FoundCell As Excel.Range
Dim rows As Integer
Set FoundCell = Sheets("Sheet2").Range("A:A").Find(what:="Total", lookat:=xlWhole)
rows = FoundCell.row
rows = rows - 1
Range("C9").value = Application.WorksheetFunction.SumIfs(Range("A1:A" & rows), B9, Range("B1:B" & rows))
我知道列的起始范围,我需要传递标准和结束范围作为参数。任何人都可以帮我找到解决方案。???
答案 0 :(得分:0)
您只需要SUMIF
。此外,B9
中的条件不合格。另外,将rows
更改为Long
。见下文:
Dim FoundCell As Range
Dim rows As Long
Set FoundCell = Sheets("Sheet2").Range("A:A").Find(what:="Total", lookat:=xlWhole)
rows = FoundCell.row
rows = rows - 1
Range("C9").Value = Application.WorksheetFunction.SumIf(Range("A1:A" & rows), Range("B9").Value, Range("B1:B" & rows))
希望这有帮助。
答案 1 :(得分:0)
首先,我怀疑您是否已将正确的参数传递给函数SumIfs
。
您可以参考http://msdn.microsoft.com/en-us/library/office/bb239775(v=office.12).aspx了解函数的语法。
第二,你正确地通过这个范围Range("A1:A" & rows)
答案 2 :(得分:0)
您可以将公式作为字符串发送或使用Worksheetfunction.Sumifs
语法
WorksheetFunction.SumIfs(<Sum Range>, <Criteria range>, <Criteria>)
方法1 :
Range("C9").Formula = "=SUMIFS(B1:B6,A1:A6,B9)"
方法2 :
Range("C9").Value = WorksheetFunction.SumIfs(Range("B1:B" & rows), Range("A1:A" & rows), Range("B9"))