В настоящее время я использую этот код для отображения числа «RCA Pending», найденного в столбце. В окне сообщения отображается правильное количество раз, когда оно найдено в столбце, однако оно создает поле для каждого экземпляра (т. Е. Если в столбце есть два экземпляра, когда рабочая книга открыта, будет отображаться «Найдено 2 RCA Pending (s) ", тогда, когда пользователь нажимает OK, появляется второе всплывающее сообщение, в котором появляется одно и то же. Если их 5, вы получите 5 последовательных всплывающих окон).Отображение результатов COUNTIF в окне сообщений
Sub Auto_Open()
Dim row As Range
For Each row In Worksheets("Swivel").UsedRange.Rows
If row.Cells(1, "AB").Value = "RCA Pending" Then
MsgBox "Found " & WorksheetFunction.CountIf(Columns("AB"), "RCA Pending") & " RCA Pending(s)", vbInformation, "RCA Pending Found"
End If
Next row
End Sub
Как это можно изменить, чтобы показать общее количество экземпляров и не получить несколько всплывающих окон?
В качестве побочного примечания я использую UsedRange, потому что диапазон всегда растет. Модуль, в котором находится этот код, имеет Option Explicit
наверху.
Почему вы используете петлю на всех? Похоже, вы начали в одном направлении, а затем изменили тактику. Избавьтесь от цикла, и оператор IF имеет только поле сообщения. –
Вы можете выполнить 'exit for' после строки' MsgBox', но, как указал Скотт, можно просто найти что-то или что-то вместо цикла. – MatthewD
@ScottCraner Целью утверждения IF было предотвращение всплывающего окна, если есть нулевые экземпляры. Я попробую это и предоставит обратную связь. –