复制并粘贴到以 B59 开头的下一个空行

Copy and Paste in next empty row beginning with B59

我之前在 VBA 中使用这一行将数据粘贴到工作表的第一个空行上

Sheets("Sheet1").Range("B" & Rows.Count).End(xlUp).Offset(1).PasteSpecial Paste:=xlValues

是否可以修改,将数据粘贴到以B59开头的第一个空行?

该行代码正在查找包含 B 列内容的最后一行并粘贴到该行下方。

如果 B 列没有文本,您可以在单元格 B58 上添加任何内容,您的代码行将开始粘贴到 B59,

如果 B 列已经有 B59 以下的文本并且您想覆盖它,您应该添加一个循环或 For 做这样的事情:

    For x = 59 To 100
        Sheets("Sheet1").Range("B" & x).PasteSpecial Paste:=xlValues
    Next

End 方法 return 是范围所在的整行或整列的第一个非空单元格,例如显而易见的:

Range("B59:B" & Rows.Count).End(xlUp)

不会停在 B59

但这确实意味着

Range("B58").End(xlUp)
如果单元格 B58 之外没有任何内容,

将 return 不同的范围,否则 return 相同的范围。

尝试

If Range("B59:B" & Rows.Count).End(xlUp) <> Range("B58").End(xlUp) Then
    Sheets("Sheet1").Range("B" & Rows.Count).End(xlUp).Offset(1).PasteSpecial Paste:=xlValues
Else
    Sheets("Sheet1").Range("B59").PasteSpecial Paste:=xlValues
EndIf