首页 文章

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

提问于
浏览
1

我正在从一个工作表( 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

1 回答

  • 3

    我建议用这个:

    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
    

    这应该运作良好 . UsedRange检查所有列,因此如果B为空,则不会覆盖它 . 唯一的问题是,如果第一行是空白的,但你可以在那里添加 Headers 数据,或者它不会再被它打扰 . 当第一行为空时,UsedRange.Rows.Count仍然输出1.享受!

相关问题