我在填充列的空白单元格时遇到问题。
我在A,B,C中有3个列标题。
在此之下我有可变数量的行,但是A列和B列总是有数据。
C列可能有空白。我怎么能做类似的事情: 编辑>转到>特别>空白,在公式栏中键入=,按向上箭头然后 Ctrl + 输入
除了宏之外,宏只会上升到A的最后一行,而不会再进一步。
我有:
Sub FillCellsFromAbove()
' Turn off screen updating to improve performance
Application.ScreenUpdating = False
On Error Resume Next
' Look in column A
With Columns(3)
' For blank cells, set them to equal the cell above
.SpecialCells(xlCellTypeBlanks).Formula = "=R[-1]C"
'Convert the formula to a value
.Value = .Value
End With
Err.Clear
Application.ScreenUpdating = True
End Sub
然而,它从页面底部填充,而不是从最后一个“A”值的位置填充。
答案 0 :(得分:1)
不要使用所有C列 - 首先确定A列中的数据延伸多远,然后在C列中抓取那么多单元格:
Sub FillCellsFromAbove()
Dim R As Range, n As Long
n = Range("A:A").Rows.Count
n = Cells(n, "A").End(xlUp).Row
Set R = Range(Cells(1, 3), Cells(n, 3))
Application.ScreenUpdating = False
On Error Resume Next
With R
' For blank cells, set them to equal the cell above
.SpecialCells(xlCellTypeBlanks).Formula = "=R[-1]C"
'Convert the formula to a value
.Value = .Value
End With
Err.Clear
Application.ScreenUpdating = True
End Sub
答案 1 :(得分:0)
在尝试将公式放入可能不存在的单元格之前,您可能希望测试空白。
With Columns(3).Resize(Cells(Rows.Count, 1).End(xlUp).Row, 1)
If CBool(Application.CountBlank(.Cells)) Then
' For blank cells, set them to equal the cell above
.Cells.SpecialCells(xlCellTypeBlanks).Formula = "=R[-1]C"
'Convert the formula to a value
.Value = .Value
End If
End With