复制并粘贴到另一个工作表的第一个空行,如果第一个单元格为空,则粘贴到前一行

use*_*081 1 excel vba

我正在从一张纸 ( B14:I14)复制一个范围并将值粘贴到第一个空行中的另一张纸上。如果范围在第一个单元格 ( B14) 中有数据,则此方法可以正常工作。

当某些单元格中有数据而不是 B14 时,下次它会粘贴到与我上次执行宏时相同的行上。

范围将不同于包含数据的所有单元格或仅包含两个单元格。我需要它来检查目标行是否为空,而不仅仅是第一个单元格。

这是我的宏:

Sub Save7()
    Dim NextRow As Range
    With Sheets("Sheet3")
        Set NextRow = .Cells(.Rows.Count, 2).End(xlUp).Offset(1, 0)
    End With
    Sheet1.Range("B14:I14").Copy
    NextRow.PasteSpecial Paste:=xlValues, Transpose:=False
    Application.CutCopyMode = False
    Set NextRow = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)

小智 6

我建议使用这个:

Sub Save7()
    Dim NextRow As Range
    Set NextRow = Range("B" & Sheets("Sheet3").UsedRange.Rows.Count + 1)
    Sheet1.Range("B14:I14").Copy
    Sheet3.Activate
    NextRow.PasteSpecial Paste:=xlValues, Transpose:=False
    Application.CutCopyMode = False
    Set NextRow = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)

那应该很好用。UsedRange 检查所有列,因此如果 B 为空,则不会覆盖它。唯一的问题是如果第一行是空白的,但您可以在那里添加标题数据,或者其他东西,它不会再被它打扰。当第一行为空时 UsedRange.Rows.Count 仍然输出 1。享受吧!