【问题标题】:converting excel sumifs formula to vba code将excel sumifs公式转换为vba代码
【发布时间】:2013-05-27 05:49:42
【问题描述】:

我正在尝试在 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)"

这是代码的sn-p(最初在评论中):

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 

【问题讨论】:

  • 寻找,你应该FIND
  • 什么“似乎不起作用”?
  • 我正在尝试运行此代码 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
  • 添加对您的问题不起作用的代码而不是评论。
  • 和附加提示:在将公式分配给.Formula 属性时,您可以在 R1C1 语法中设置公式。尝试把.Formula改成.FormulaR1C1

标签: vba excel excel-2007 excel-formula


【解决方案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 替换为变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多