我有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
我需要填补所有空白。
答案 0 :(得分:3)
您可以在没有VBA的情况下做到这一点。
选择范围,按F5打开“转到”对话框,单击“ 特殊”,然后在下一个对话框中选中“ 空白”,然后单击“确定”。这将选择选定范围内的所有空白单元格。
现在,在不更改选择的情况下,键入=
符号,然后按键盘上的向上箭头,然后键入+1
。按住 Ctrl 键,然后按 Enter 。
如果您仍要使用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