2016-04-12 36 views
2

Şu anda bu kodu bir sütunda bulunan "RCA Pending" sayısını görüntülemek için kullanıyorum. İleti kutusu, sütunda doğru sayıda bulunduğunu gösterir, ancak, her bir örnek için bir kutu oluşturur (örneğin, sütunda 2 örnek varsa, çalışma kitabı açık olduğunda görüntülenecektir "2 RCA Bekleniyor) (s) ", kullanıcı OK (Tamam) 'ı tıklattığında, aynı şeyi söyleyen ikinci bir pencere açılır. 5 tane varsa 5 ardışık açılır pencere alırsınız.İleti Kutusunda COUNTIF sonucu gösteriliyor

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 

Bu, örneklerin toplam sayısını göstermek ve birden çok açılır pencere almamak için nasıl değiştirilebilir?

Bir kenar notu olarak, UsedRange kullanıyorum çünkü aralık sürekli büyüyor. Bu kodun içinde bulunduğu modül üstte Option Explicit vardır.

+1

Neden hiç döngü kullanıyorsunuz? Bir şekilde başladığın anlaşıldı, sonra taktikler değişti. Döngüden kurtulun ve IF beyanı sadece mesaj kutusuna sahip. –

+0

'MsgBox' satırından sonra bir' exit for'' yapabilirsiniz, ancak scott’in işaret ettiği gibi, bir döngü veya bir şey yerine bir şey yapabilir. – MatthewD

+1

@ScottCraner IF ifadesinin amacı, sıfır örnek olması durumunda açılır pencereyi engellemekti. Bunu deneyeceğim ve geri bildirim sağlayacağım. –

cevap

2

Denediğin şey bu mu?

Sub Auto_Open() 
    Dim instances As Long 

    instances = WorksheetFunction.CountIf(Columns("AB"), "RCA Pending") 

    If instances <> 0 Then _ 
    MsgBox "Found " & instances & " RCA Pending(s)", vbInformation, "RCA Pending Found" 
End Sub 

VEYA

Sub Auto_Open() 
    Dim instances As Long 

    instances = WorksheetFunction.CountIf(Columns("AB"), "RCA Pending") 

    MsgBox "We Found " & instances & " instances of RCA Pending(s)", _ 
    vbInformation, "RCA Pending Found" 
End Sub