2011-09-29 32 views
5

Sto tentando di inserire automaticamente i valori 0 e 0% in celle vuote in Excel. Ho un report in Excel che viene riempito automaticamente da SAS. Dopo aver salvato questo report, desidero che le celle vuote vengano automaticamente compilate come 0 in colonne numeriche e 0% in colonne percentuali.Compilando automaticamente 0 e 0% in celle vuote di Excel

Quale sarebbe la macro o il codice VBA per questo?

risposta

9

Se si desidera aggiungere 0 a una cella vuota, ci sono diversi modi per farlo: eccone uno utilizzando l'intervallo A1: D10 come esempio. Si noti che se una cellula è formattata in percentuale, la "%" viene aggiunto automaticamente al 0.:

Sub test() 

Dim cell As Range 

For Each cell In Range("A1:D10") 
    If Len(cell.Value) = 0 Then 
     cell.Value = 0 
    End If 
Next 

End Sub 

Si prega di notare che se si sta facendo questo su un ampio intervallo di celle (in realtà è buona norma fare tutto il tempo), si desidera assicurarsi di aggiungere Application.ScreenUpdating = False all'inizio del codice e Application.ScreenUpdating = True alla fine. Questo lo renderà molto più veloce.

+0

anche 'Se Len (Trim (Cell.Value)) = 0 Then' Ci possono essere alcuni spazi bianchi anche possibile. –

4

Se le celle sono veramente vuote (cioè vuote), esistono due modi per riempire immediatamente le celle utilizzando SpecialCells, manualmente o con codice rapido evitando i loop.

David Mcritchie ha scritto questo in dettaglio here.

percorso manuale

  • Effettuare una selezione
  • Press F5 ... speciale .. Goto azzera
  • nella barra della formula aggiungere 0
  • quindi premere Ctrl + Enter

percorso codice

Sub Quickfull() 
'reset usedrange 
ActiveSheet.UsedRange 
On Error Resume Next 
ActiveSheet.Cells.SpecialCells(xlBlanks).Value = 0 
End Sub 
+2

Si noti che celle speciali restituiranno solo le celle all'interno di un intervallo utilizzato. Se non ci sono celle usate, SpecialCells (xlCellTypeBlanks) restituirà un errore (nessuna cella trovata). – aevanko