3

我正在尝试在 VBA 中进行 SUMIFS 计算。当我在电子表格中输入它时它工作正常,但是当我尝试将它转换为 VBA 时,它似乎不起作用。

Sheets("Master").Range("B2:B" & Range("A" & Rows.Count).End(xlUp).Row).Formula = _
    "=SUMIFS(Input!C32,Input!C37,Master!C1,Input!C31,Master!R1C)"

这是代码片段(最初在评论中):

Dim LastRow As Long 
Dim rw As Long 
LastRow = Range("A" & Rows.Count).End(xlUp).Row 
For rw = 2 To LastRow 
  Sheets("Master").Cells(rw, 2).Value = Application.WorksheetFunction.SumIfs(Sheets("Input").Range("AF:AF"), Sheets("Input").Range("AK:AK"), Sheets("Master").Range("A:A"), Sheets("Input").Range("AE:AE").Sheets("Master").Range("B2"))  
Next 
4

1 回答 1

1

您没有指定要在条件中查找的值1。您必须指定一个值,而不是一个范围。

你的总和范围很好。

Sheets("Input").Range("AF:AF")

您的标准 range1 很好。

Sheets("Input").Range("AK:AK")

您的标准 1 必须是一个值,而不是一个范围。

用这个Sheets("Master").Range("A2").value 代替Sheets("Master").Range("A:A")

显然,如果您需要让循环工作,您可以用变量替换条件 1 中的 2。

于 2013-05-31T12:59:34.953 回答