2016-08-31 229 views
0

如何在一列填充0单元格的空单元格?我想我的代码是完整的,但不能正常工作;(VBA - 用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 
+3

你真的需要VBA吗? – pnuts

+0

@pnuts很好,你知道,有时你想自动化的东西... –

回答

2

试试这个:

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 
+0

我不认为这种劣势(从性能角度来看)解决方案应得票。顺便说一句。 IsEmpty(cell.Value)也是一个很好用的函数。 :) –

+0

是的,我知道,但我只是想在OP的代码中做最少量的更改我是懒惰的:p – newguy

0
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 
+1

请编辑更多信息。仅限代码和“尝试这个”的答案是不鼓励的,因为它们不包含可搜索的内容,也不解释为什么有人应该“尝试这个”。 – abarisone

2

没有VBA:

Goto Special, Blanks 
type '0' 
Ctrl+Enter 
+0

问题是关于VBA。 –

+0

可能想从'选择B2307:B10000'开始,但肯定是我的首选方法! – pnuts

5

如果你真的需要VBA为此,在这里是更好的方法

Sub test() 

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

End Sub 
0

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

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

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

相关问题