VBA:使用大于等于1的值填充空白单元格

时间:2019-07-11 05:24:11

标签: excel vba

我有5张纸上有空白单元格,我需要用上面的值加1来填充它们。例如:A列有1,2,,4,5,我需要一个将其变为1的代码2,3,4,5

我尝试了在网上找到的代码,但它只是复制了上面的值。

Sub FillBlanks()
Columns("A:A").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C"
End Sub

我需要填补所有空白。

2 个答案:

答案 0 :(得分:3)

您可以在没有VBA的情况下做到这一点。

选择范围,按F5打开“转到”对话框,单击“ 特殊”,然后在下一个对话框中选中“ 空白”,然后单击“确定”。这将选择选定范围内的所有空白单元格。

现在,在不更改选择的情况下,键入=符号,然后按键盘上的向上箭头,然后键入+1。按住 Ctrl 键,然后按 Enter

enter image description here

如果您仍要使用VBA,请将代码的最后一行更改为

Selection.FormulaR1C1 = "=R[-1]C+1"

这将为您提供与手动方法相同的结果。

答案 1 :(得分:1)

通过尽可能避免使用Select,您的程序将变得更简单,更快,更有效。这是一行正确的程序:

Sub FillBlanks()
Columns("A:A").SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C+1"
End Sub

要应用于工作簿中的所有5张纸:

Sub FillBlanks()
Dim ws as Worksheet, LastRow as Long
On Error Resume Next
For Each ws in ThisWorkbook.Worksheets
    LastRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
    ws.Range("A1:A" & LastRow).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C+1"
Next ws
End Sub