宏将数据从一个工作表复制到另一个工作表,仅在尚未存在的情况下

1 excel vba excel-vba

我正在努力与这个宏.我有两张纸; 一个包含大量数据的数据,这些数据由宏针对多个日期进行更新.

我想将该表中的数据("rawdata1")复制到另一个工作表("sheet1"),但仅当数据尚未存在时(不希望"sheet1"上的相同数据有多个条目).我将数据复制到另一个工作表没有问题,但是当宏运行多次时,如何避免重复输入?

我到目前为止的代码:

Sub CopyData()
'Copy data if not present in other sheet
'???

Sheets("rawdata1").Select
Range("A4:AC10000").Select
Range("A4:AC10000").Copy

Sheets("Sheet1").Select
  ' Find the last row of data
  FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
  ActiveSheet.Paste
  Sheets("Sheet1").Select
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!

Tim*_*ams 5

您的代码可以简化为:

Sheets("rawdata1").Range("A4:AC10000").Copy _
      Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Offset(1,0)    
Sheets("Sheet1").Select
Run Code Online (Sandbox Code Playgroud)

至于防止同一行的多个副本,如果您使用的是Excel 2007+,则可以在运行副本后使用RemoveDuplicates:这会将范围缩小到仅限于唯一行.注意:您需要调整Columns参数以包含所有相关的列号.

ActiveSheet.UsedRange("$A$1:$E$8").RemoveDuplicates _
    Columns:=Array(1, 2, 3, 4, 5), Header:=xlYes 'or xlNo, depending on your data
Run Code Online (Sandbox Code Playgroud)