如何用VBA获取Excel工作表最后一行行号并在其下方粘贴数据?
自动获取Excel工作表指定列最后一行行号的VBA代码
核心代码(针对你的B列需求)
要自动获取工作表CICLICO中第2列(B列)的最后一行数据行号并赋值给LastRow,可以用以下可靠的方法:
Dim ws As Worksheet Dim LastRow As Long ' 直接绑定目标工作表,避免因切换工作表导致错误 Set ws = ActiveWorkbook.Sheets("CICLICO") ' 从B列最后一行向上查找首个非空单元格,获取其行号 LastRow = ws.Cells(ws.Rows.Count, 2).End(xlUp).Row
整合到你的定位逻辑
把上面的代码和你现有的定位代码结合,完整示例如下:
Sub PasteToNextRow() Dim ws As Worksheet Dim LastRow As Long Set ws = ActiveWorkbook.Sheets("CICLICO") LastRow = ws.Cells(ws.Rows.Count, 2).End(xlUp).Row ' 定位到B列最后一行的下一行,准备粘贴 Application.Goto ws.Cells(LastRow + 1, 2) End Sub
关键说明
- 这个方法适用于B列有数据或完全为空的场景:如果B列是空的,
LastRow会返回1,定位到第2行,符合常规粘贴起始位置需求。 - 避免依赖
ActiveSheet,直接绑定工作表对象ws能让代码更稳定,不会因手动切换工作表而出错。 - 如果需要获取整个工作表的最后一行(而非指定列),可以用
ws.UsedRange.Rows.Count,但这种方法可能包含空行,不如指定列的xlUp方法可靠。
内容的提问来源于stack exchange,提问作者Lucas Tezolini
相关产品推荐
相关产品推荐

