使用表列作为工作表函数中的条件

时间:2014-04-05 22:03:16

标签: excel vba excel-vba

我想在我的一个计算中使用averageifs,它引用一个工作表中名为Table1的表的一列。如果我将公式粘贴在单元格中,我可以这样做。但我有很多细胞,所以我想避免粘贴。总之,我想说:

Selection.Value = WorkSheetfunction.AverageIff(Table1["Col A"], . . . .

其中Col A是包含该数据值的列

目前这有效:

With Selection
        .FormatConditions.Add Type:=xlExpression, Formula1:=formula

,其中

formula = "=AVERAGEIFS(Table1[" + name + "],Table1[CELLNAME],Template!RC1,Table1[Date],Template!R1C)"

但正如我所说,我希望提高代码效率并避免粘贴公式。那么如何将表列作为标准插入到工作表函数中。

由于

1 个答案:

答案 0 :(得分:1)

  

那么如何将表列作为标准插入到工作表函数中。

使用此代码:

Selection.Value = WorksheetFunction.AverageIfs(Range("Table1[Col A]"), _
                                     Range("Table1[CELLNAME]"), "<criteria1>", _
                                     Range("Table1[Date]"), "<criteria2>")

<强> UPD:

  

我想用公式
填充空白单元格   我不希望公式出现在单元格中

在这种情况下,我建议您遵循以下解决方案:

With Selection
    .FormulaR1C1 = "=AVERAGEIFS(Table1[Col A],Table1[CELLNAME],Template!RC1,Table1[Date],Template!R1C)"
    .Value = .Value
End With

它使用公式计算值,然后.Value = .Value part 使用结果重写公式


并查看此链接:how to avoid using Select/Active statements