Как подсчитать ячейки, которые не являются пустыми в VBA? - PullRequest
0 голосов
/ 01 апреля 2020

Я застрял с ошибкой, когда я не могу заставить работать мой CountIf. На моем листе "2020 Master RMA's" у меня есть столбец A, в котором указаны даты в виде м / д / гггг. Я хочу, чтобы произошло следующее: проверьте столбец A. Если столбец A соответствует критерию января (ie, если monthNum = 1), то go, чтобы перейти непосредственно к столбцу O и посмотреть, есть ли дата в эта клетка тоже. Если в этой ячейке есть дата, подсчитайте эту дату вместе с остальными непустыми ячейками с датами в этом столбце O.

Я хочу, чтобы результаты столбца O до go вошли в ячейку в еще один лист под названием «Мартовские презентации». Результат будет go в ячейке AE49.

Я должен получить значение 3 в ячейке AE49, но я получаю только значение 1, и я все еще не могу понять, почему после пары часов смотреть на это.

Sheets("2020 Master RMA's").Select
lastRow = ActiveSheet.UsedRange.Rows.Count
For row = 2 To lastRow
    monthNum = Month(Worksheets("2020 Master RMA's").Range("A" & row).Value)
    If monthNum = 1 Then
        January = January + 1
        JanuaryQE = Application.WorksheetFunction.CountIfs(Worksheets("2020 Master RMA's").Range("O" & row), "<>""")
 Next

Sheets("March Presentation").Select
Worksheets("March Presentation").Range("AD49").Value = January
Worksheets("March Presentation").Range("AE49").Value = JanuaryQE

1 Ответ

0 голосов
/ 01 апреля 2020
With Worksheets("2020 Master RMA's")
    lastRow = .Range("A" & .Rows.Count).End(xlUp).Row
    For Row = 2 To lastRow
        monthNum = Month(.Range("A" & Row).Value)
        If monthNum = 1 Then
            January = January + 1
            januaryqe = januaryqe + IIf(.Range("O" & Row) <> "", 1, 0)
        End If
     Next
End With
With Worksheets("March Presentation")
    .Range("AD49").Value = January
    .Range("AE49").Value = januaryqe
End With
...