2014-11-19 24 views
5

Sto cercando di ottenere il risultato di celle diverse in base a un'istruzione if preimpostata Sto ricevendo il risultato in più finestre di messaggio e il risultato per tutte le celle viene calcolato in base al primo controllo dell'affermazione. Come posso ricevere tutti i risultati in un singolo msgbox e consentire alla funzione di controllare ogni singola cella dell'intervallo?VBA Excel: ottenere risultati per più celle

Dim rcell As Range 
For Each rcell In Vou_Summary.Range("I5:I16") 
    If 0 < rcell <= 2.5 Then 
     MsgBox rcell.Cells.Offset(0, -3).Value & " Is Critical", vbOKOnly, "Notice!" 
    ElseIf 2.5 < rcell <= 4 Then 
     MsgBox rcell.Cells.Offset(0, -3).Value & " Requires PR Placement", vbOKOnly, "Notice!" 
    ElseIf rcell >= 7 Then 
     MsgBox rcell.Cells.Offset(0, -3).Value & " Is Oversupplied", vbOKOnly, "Notice!" 
    Else 
End If 
Next 

risposta

3

È possibile creare prima una variabile String. Non gettare un MsgBox ma salvare i risultati nella variabile. Dopo l'istruzione End If, mostrare MsgBox e passare la variabile stringa come contenuto.

Meglio, è possibile utilizzare un String Builder per farlo funzionare circa 1000 volte più veloce rispetto alla concatenazione di default VBA;)