如果单元格为空,请复制上方的整行并插入到空单元格的行中

时间:2019-08-02 20:50:28

标签: excel vba

因此,我们正在开发一种新的跟踪工具。在我的宏的第一部分中,如果M列中的数量大于1,则在其下面插入许多行(负1)。我们正在尝试用自己的行隔离每个数量。因此,它显示9行数量1,而不是1行数量9。

我现在需要的是在宏的第一部分运行之后,如果列A中的单元格为空白,请从上方复制行并将其插入空单元格的行中。我知道如何在VBA中逐个单元地执行此操作(请参见下文),但是有很多空白单元格应该为空白。

用上面的单元格填充所有空单元格将不起作用,因为某些单元格需要为空。如果A列中的单元格为空白,则指示符必须位于A列中,并且需要复制以上整个行并将其粘贴到空单元格行中。

Sub Fill()

Dim lr As Long
lr = Cells(Rows.count, 1).End(xlUp).Row
On Error Resume Next
Range("A4:M" & lr).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"

End Sub

1 个答案:

答案 0 :(得分:0)

您可以测试A列中的单元格是否为空,然后复制上面的行。可能是一种更有效的方法,但是这样做有效

Sub Fill()
    Dim lr As Long
    Dim x As Long
    lr = Cells(Rows.Count, 1).End(xlUp).Row
    For x = 2 To lr
        If IsEmpty(Cells(x, 1)) Then
            Cells(x - 1, 1).EntireRow.Copy Cells(x, 1)
        End If
    Next x
End Sub