我还是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
我知道我的循环很可能在这段代码中没有做任何事情,但我似乎无法得到结果,而且这段代码是我得到的最接近的。
任何帮助都将不胜感激。
谢谢
答案 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="","")
它不会将这些视为空白(意味着它们在运行代码后仍会“显示”为空白),因此您的里程可能非常。