У меня есть следующая формула VBA для подсчета непустых ячеек в диапазоне, а также некоторые другие условия в других диапазонах. Часть для подсчета непустых ячеек не работает. Это фрагмент кода:

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

Верны ли первые два аргумента?

1
N. Pavon 29 Фев 2016 в 20:18

2 ответа

Лучший ответ

Я решил это, выполнив:

LAX(0) = Application.WorksheetFunction.CountIfs(Range("I:I"), "<>" & "", Range("AH:AH"), "LAX", Range("AG:AG"), ">=" & semanaI, Range("AG:AG"), "<=" & semanaF)
2
N. Pavon 29 Фев 2016 в 17:38

К сожалению, вам нужно немного больше обработки с вашим условием, потому что если ячейка в любом аргументе является пустой ячейкой, CountIfs обрабатывает ее как значение 0 .

(СПРАВКА, BRO: https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.worksheetfunction.countifs.aspx?cs-save- lang = 1 & amp; cs-lang = vb # code-snippet-1)

Так,

Application.WorksheetFunction.CountIfs ({диапазон для оценки критериев}, {критерии_1}, {критерии_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
1
K Zombro 29 Фев 2016 в 17:42