2011-09-29 235 views
5

我试图在Excel中的空白单元格中自动输入0和0%值。我在Excel中有一个报告,从SAS自动填充。保存此报告后,我希望空白单元格在数字列中自动填充为0,在百分比列中为0%。在Excel空白单元格中自动填充0和0%

宏或VBA代码会是什么?

回答

9

如果您只想将0添加到空白单元格中,有几种方法可以做到这一点 - 以下以范围A1:D10为例。需要注意的是,如果一个单元格的格式设置为百分比,“%”被自动添加到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 

请注意,如果你在一个大范围的细胞(实际上这是很好的做法,这样做的这样做这是所有的时间),你想要确保你在代码的开头加Application.ScreenUpdating = False,在的最后加上Application.ScreenUpdating = False。这将使它运行得更快。

+0

也'如果len(修剪(cell.Value))= 0 Then'可以有一些白色空间也是可能的。 –

4

如果单元格确实是空白的(即空白),那么有两种方法可以使用手动或使用快速代码避免循环立即填充单元格使用SpecialCells

David Mcritchie详细地写了这个here

手动路由

  • 进行选择
  • F5 ... ..特别转到空白
  • 在公式编辑栏中添加0
  • 然后按Ctrl + Enter

代码路线

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

请注意,特殊单元格只会返回使用范围内的单元格。如果没有使用过的单元格,SpecialCells(xlCellTypeBlanks)将返回一个错误(没有找到单元格)。 – aevanko