宏复制/粘贴Excel工作表

时间:2015-01-27 11:20:41

标签: excel vba excel-vba

我有宏代码从Input复制并粘贴一个值列表,其中记录输入到Completed,标题是相同的。

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

1 个答案:

答案 0 :(得分:0)

Paste Special, values操作可以用不涉及剪贴板的直接传输代替,并且通常更快一些。通过'考虑现有的填充字段,我会将其视为您希望将新信息放入 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

您没有提及任何列标题标签,因此我没有考虑它们。如果您有每次不希望带来的列标题标签,则数据范围可以向下偏移1行。

相关问题