Ich verwende derzeit diesen Code, um die in einer Spalte gefundene Anzahl von "RCA Pending" anzuzeigen. Das Meldungsfeld zeigt die korrekte Anzahl der Male, die es in der Spalte gefunden wird, jedoch erstellt es ein Feld für jede Instanz (dh wenn es 2 Instanzen in der Spalte gibt, wenn die Arbeitsmappe geöffnet ist, wird "2 RCA Pending angezeigt (s) ", dann, wenn der Benutzer auf OK klickt, erscheint ein zweites Popup, das dasselbe sagt. Wenn es 5 gibt, erhalten Sie 5 aufeinanderfolgende Popups.Anzeigen von COUNTIF-Ergebnissen in einem Meldungsfeld
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
Wie kann dies die Gesamtzahl der Instanzen und nicht bekommt mehr Pop-ups zu zeigen, verändert werden?
Als eine Randnotiz verwende ich UsedRange, weil der Bereich immer wächst. Das Modul, in dem sich dieser Code befindet, hat Option Explicit
an der Spitze.
Warum verwenden Sie die überhaupt Schleife? Es sieht so aus, als ob du in eine Richtung gestartet bist und dann die Taktik geändert hast. Befreien Sie sich von der Schleife und die IF-Anweisung haben nur das Nachrichtenfeld. –
Sie könnten einen 'exit for' nach der 'MsgBox'-Zeile machen, aber wie scott darauf hinwies, könnte man einfach einen Fund oder etwas anstelle der Schleife machen. – MatthewD
@ScottCraner Die Absicht der IF-Anweisung bestand darin, das Popup zu verhindern, wenn null Instanzen vorhanden sind. Ich werde das versuchen und Feedback geben. –