VBA - 如何将范围内的空单元格设置为零

时间:2017-01-20 19:58:02

标签: vba excel-2016

我还是Visual Basic的新手,并且想要创建一个宏,该宏基本上填充值(整数)为零的空单元格,同时将现有单元格保留在范围内(如果不是空的话)。我的代码目前是这样的:

 Sub FillEmptyCellsWithZeros()

'this should fill empty cells with a 0 value for the range selected



 Dim cell As Object
    Dim y As Integer

    y = 0
    For Each cell In Selection
      If y = Empty Then 
      Selection.Value = 0 
      ElseIf y <> Empty Then 
      Selection.Value = ActiveCell.Value 
      End If 
    Next cell

End Sub

我知道我的循环很可能在这段代码中没有做任何事情,但我似乎无法得到结果,而且这段代码是我得到的最接近的。

任何帮助都将不胜感激。

谢谢

2 个答案:

答案 0 :(得分:1)

你在想一点:

 Sub FillEmptyCellsWithZeros()

'this should fill empty cells with a 0 value for the range selected



 Dim cell As Object
    Dim y As Integer

    y = 0
    For Each cell In Selection
      If cell = "" Then
        cell = y
      End If
    Next cell

End Sub

答案 1 :(得分:1)

不要从Scott的回答中删除任何内容,但如果您对非循环答案感兴趣,可以尝试以下方法:

Selection.SpecialCells(xlCellTypeBlanks).Value = 0

如果您有大量不连续范围的选择,这可能会导致问题,但它应该非常可靠。

此外,如果您有一个返回空白的公式(例如:)

=IF(E16="","")

它不会将这些视为空白(意味着它们在运行代码后仍会“显示”为空白),因此您的里程可能非常。