宏 Copy/Paste Excel Sheet
Macro Copy/Paste Excel Sheet
我有宏代码从输入复制和粘贴值列表,其中记录输入到已完成,headers 是相同的。
Sub a()
Sheets("ITM").Range("A1:AD1000").Copy
Sheets("ISP").Range("A1").PasteSpecial xlValues
End Sub
这适用于复制和粘贴,但我需要对其进行调整以考虑现有的填充字段,以便旧的已完成记录不会被覆盖。
示例数据:
ITM:
用户输入数据
Header A - Header B - Header C
Ex BY TY
ISP
它记录了之前输入的所有数据,宏会将 ISP 输入的最新数据添加到下一个可用行。
Request # Header A - Header B - Header C
1 XY TY ER
2 QW WE EW
3 EX BY TY
Paste Special, values
操作可以用不涉及剪贴板的直接传输代替,通常速度更快一些。通过 'take into account existing filled fields',我将其理解为您想将新信息放入 ISP 工作表的第一个空白行中,并且不覆盖以前的记录。
Sub a()
With Sheets("ITM").Cells(1, 1).CurrentRegion
With .Offset(1, 0).Resize(.Rows.Count - 1, 30)
Sheets("ISP").Cells(Rows.Count, 1).End(xlUp) _
.Offset(1, 1).Resize(.Rows.Count, .Columns.Count) = .Value
Sheets("ISP").Cells(Rows.Count, 1).End(xlUp).Resize(.Rows.Count + 1, 1) _
.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=1
End With
End With
End Sub
您没有提到任何列 header 标签,所以我没有考虑它们。如果您不想每次都显示第 header 列标签,则可以将数据范围向下偏移 1 行。
我有宏代码从输入复制和粘贴值列表,其中记录输入到已完成,headers 是相同的。
Sub a()
Sheets("ITM").Range("A1:AD1000").Copy
Sheets("ISP").Range("A1").PasteSpecial xlValues
End Sub
这适用于复制和粘贴,但我需要对其进行调整以考虑现有的填充字段,以便旧的已完成记录不会被覆盖。
示例数据:
ITM:
用户输入数据
Header A - Header B - Header C
Ex BY TY
ISP
它记录了之前输入的所有数据,宏会将 ISP 输入的最新数据添加到下一个可用行。
Request # Header A - Header B - Header C
1 XY TY ER
2 QW WE EW
3 EX BY TY
Paste Special, values
操作可以用不涉及剪贴板的直接传输代替,通常速度更快一些。通过 'take into account existing filled fields',我将其理解为您想将新信息放入 ISP 工作表的第一个空白行中,并且不覆盖以前的记录。
Sub a()
With Sheets("ITM").Cells(1, 1).CurrentRegion
With .Offset(1, 0).Resize(.Rows.Count - 1, 30)
Sheets("ISP").Cells(Rows.Count, 1).End(xlUp) _
.Offset(1, 1).Resize(.Rows.Count, .Columns.Count) = .Value
Sheets("ISP").Cells(Rows.Count, 1).End(xlUp).Resize(.Rows.Count + 1, 1) _
.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=1
End With
End With
End Sub
您没有提到任何列 header 标签,所以我没有考虑它们。如果您不想每次都显示第 header 列标签,则可以将数据范围向下偏移 1 行。