Excel VBA实现Sheet1列A数据从Sheet2单元格A13开始粘贴的问题
解决VBA复制Sheet1 A列到Sheet2 A13起始位置的问题
看起来你当前的代码大概率是在自动寻找Sheet2的最后一行作为粘贴起点,所以没法固定到A13这个指定位置。其实要实现固定起始位置的粘贴很简单,我们可以直接指定目标区域的起始单元格,不用去计算Sheet2的最后一行。
这里给你调整后的完整代码:
Sub test1() ' test1 Macro Application.ScreenUpdating = False Dim s1 As Excel.Worksheet Dim s2 As Excel.Worksheet Dim iLastRowS1 As Long ' 设置工作表对象(确保是当前工作簿内的表) Set s1 = ThisWorkbook.Worksheets("Sheet1") Set s2 = ThisWorkbook.Worksheets("Sheet2") ' 获取Sheet1 A列最后一行的行号(避免复制空行) iLastRowS1 = s1.Cells(s1.Rows.Count, "A").End(xlUp).Row ' 复制Sheet1 A列数据(从A1到最后一行),粘贴到Sheet2的A13 s1.Range("A1:A" & iLastRowS1).Copy Destination:=s2.Range("A13") Application.ScreenUpdating = True End Sub
关键调整说明:
- 直接用
Destination:=s2.Range("A13")指定粘贴起始位置,完全符合你需求里的固定起点要求。 - 如果你的实际需求是从Sheet1的A2开始复制(就像你例子里提到的Sheet1的A2对应Sheet2的A13),只需要把复制范围改成
s1.Range("A2:A" & iLastRowS1)即可。 - 代码开头关闭界面刷新、结尾恢复,能让宏运行得更流畅,避免Excel界面闪烁。
要是你还有额外需求,比如不想覆盖Sheet2 A13及以下的原有数据、或者需要跳过Sheet1里的空行,可以随时调整代码逻辑~
内容的提问来源于stack exchange,提问作者sid
相关产品推荐
相关产品推荐

