使用VBA来计算非空白单元格

时间:2016-02-29 17:18:48

标签: excel vba excel-vba

我有以下VBA公式来计算范围内的非空白单元格,以及其他范围内的其他条件。计算非空白单元格的部分不起作用。这是一段代码:

LAX(0) = Application.WorksheetFunction.CountIfs(Range("I:I"), "<>""", Range("AH:AH"), "LAX", Range("AG:AG"), ">=" & semanaI, Range("AG:AG"), "<=" & semanaF)

前两个参数是否正确?

2 个答案:

答案 0 :(得分:2)

我解决了这个问题:

LAX(0) = Application.WorksheetFunction.CountIfs(Range("I:I"), "<>" & "", Range("AH:AH"), "LAX", Range("AG:AG"), ">=" & semanaI, Range("AG:AG"), "<=" & semanaF)

答案 1 :(得分:1)

不幸的是,您需要对条件进行更多处理,因为如果任何参数中的单元格都是空单元格, CountIfs会将其视为0值。

(参考,BRO:https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.worksheetfunction.countifs.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

所以,

Application.WorksheetFunction.CountIfs({range to evaluation criteria},{criteria_1},{criteria_2},...)

这样做:

Dim rCell as Range.Cells
Dim rRange as range

Set rRange = Range("I:I")

For Each rCell in rRange

    If { foo } Then
        'do stuff
    Elif { bar} 
        'do stuff
    Else { derp}
        'do stuff
    End If

Debug.Print rCell.Address, rCell.Value

Next rCell