Excel 停止插入行以清除第一行数据

Excel 停止插入行以清除第一行数据,excel,vba,Excel,Vba,我有一个代码,可以在电子表格中添加15行,然后复制到新的电子表格中。当我插入行时,它看起来好像覆盖了已经存在的第一行数据。我需要第一行数据仍然存在 我正在使用一些可能在这里或网站上找到的代码。在此之前,我过滤所有数据并删除额外的行类别 'prep for adding departments and department subtotals Rows("1:15").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove data_s

我有一个代码,可以在电子表格中添加15行,然后复制到新的电子表格中。当我插入行时,它看起来好像覆盖了已经存在的第一行数据。我需要第一行数据仍然存在

我正在使用一些可能在这里或网站上找到的代码。在此之前,我过滤所有数据并删除额外的行类别

'prep for adding departments and department subtotals
Rows("1:15").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

data_sh.Range("G:G").Copy Worksheets("IMPORT-WIP").Range("A1")
Worksheets("IMPORT-WIP").Range("A:A").RemoveDuplicates 1, xlYes

第一个类别的第一行不在那里。

因为您没有提供示例,所以我编了一个示例。动画gif(单击以查看更好的质量)首先显示2张图纸,然后显示单步执行代码会将图纸1中的数据复制到图纸2顶部插入的15行中,而不会丢失第1行中的数据

我建议您验证这是否有效,然后根据您的情况修改代码


行(“1:15”)
向下移动第一行。听起来应该是
2:16
。而且
Shift
应该是
xlShiftDown
而不是
xlDown
(不会改变性能,但这是正确的枚举成员)。
Option Explicit
Sub insertIntoFirst15rows()
Dim data_sh As Worksheet, data_r As Range
Dim sh As Worksheet, r As Range
Set data_sh = Worksheets("1")
Set data_r = data_sh.Range("A1")
Set data_r = data_sh.Range(data_r, data_r.End(xlDown))
Set sh = Worksheets("2")
sh.Activate
Set r = sh.Rows("1:15")
r.Insert Shift:=xlShiftDown
Set r = Range("A1")
r.Select
data_r.Copy
sh.Paste
End Sub