1

私はこのマクロに苦労しています。私は 2 枚のシートを持っています。複数の日付に関してマクロによって更新される大量のデータ セットを持つもの。

そのシート(「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

助けてくれてありがとう!

4

1 に答える 1

5

コードは次のように簡略化できます。

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

同じ行の複数のコピーを防ぐために、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
于 2012-08-31T22:27:37.690 に答える