如何在一列填充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
如何在一列填充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
试试这个:
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
我不认为这种劣势(从性能角度来看)解决方案应得票。顺便说一句。 IsEmpty(cell.Value)也是一个很好用的函数。 :) –
是的,我知道,但我只是想在OP的代码中做最少量的更改我是懒惰的:p – newguy
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
请编辑更多信息。仅限代码和“尝试这个”的答案是不鼓励的,因为它们不包含可搜索的内容,也不解释为什么有人应该“尝试这个”。 – abarisone
没有VBA:
Goto Special, Blanks
type '0'
Ctrl+Enter
问题是关于VBA。 –
可能想从'选择B2307:B10000'开始,但肯定是我的首选方法! – pnuts
如果你真的需要VBA为此,在这里是更好的方法
Sub test()
On Error Resume Next
Range("B2307:B10000").SpecialCells(xlCellTypeBlanks) = 0
End Sub
尽管Rosetta的解决方案是这个非常特殊情况下最优雅的解决方案(空单元格),但我认为以下方法是最通用的,因为您可以通过更改公式来轻松地将其调整为更多情况。
set rng = Range("B2307:B10000")
rng.Formula = Application.Evaluate("=IF(ISBLANK(" & rng.Address & "),0," & rng.Address & ")")
请记住这个模式,这非常有用!
你真的需要VBA吗? – pnuts
@pnuts很好,你知道,有时你想自动化的东西... –