VBA – 用0填充空单元格

如何用一列中的0填充空单元格? 我想我的代码是完整的,但不工作;(

Sub test() Dim cell As Range For Each cell In Range("B2307:B10000") If Len(cell.Value) = 0 Then cell.Value = 0 End If Next End Sub 

如果你真的需要vba,这是一个更好的方法

 Sub test() On Error Resume Next Range("B2307:B10000").SpecialCells(xlCellTypeBlanks) = 0 End Sub 

尝试这个:

 Sub test() Dim cell As Range For Each cell In Range("B2307:B10000") If Trim(cell.Value) = "" Then cell.Value = 0 End If Next cell End Sub 

没有VBA:

 Goto Special, Blanks type '0' Ctrl+Enter 
 Sub test() Dim cell As Range For Each cell In Range("B2307:B10000").Cells If Len(cell.Value) = 0 Then cell.Value = "0" End If Next End Sub 

尽pipeRosetta的解决scheme对于这个非常特殊的情况(空单元格)来说是最优雅的解决scheme,但我认为以下是最一般的方法,因为您可以通过更改公式来轻松地将其调整到更多情况。

 set rng = Range("B2307:B10000") rng.Formula = Application.Evaluate("=IF(ISBLANK(" & rng.Address & "),0," & rng.Address & ")") 

记住这个模式,这是非常有用的!