ご相談としては、重複しない転記方法をお伺いしたいです。
コピー元ファイルからコピー先ファイルに、データをコピーしたいと思っています。
コピー元ファイルとコピー先データは基本内容が同じなのですが
コピー元ファイルが少しずつ増えていき、その増加分をコピー先ファイルに転記したいです。
(先にコピーした分は、色付けし足りコメントを加えたりするので、全件上書きはできません。)
▼コピー元ファイルの見た目
A|B|C|D|
|:--|:--:|--:|
|ID|日付|概要|内容
|1|2021/10/21 10:00:00|あいうえお|あいうえおかきくけこ
|2|2021/10/21 10:55:10|かきくけこ|かきくけこさしすせそ
|3|2021/10/21 11:10:49|さしすせそ|さしすせそたちつてと
▼コピー先ファイルの見た目
A|B|C|D|E|
|:--|:---:|--:|
|ID|日付|概要|内容|コメント
|1|2021/10/21 10:00:00|あいうえお|あいうえおかきくけこ|ここに新規のコメント
|2|2021/10/21 10:55:10|かきくけこ|かきくけこさしすせそ|ここに新規のコメント
例えばこの場合は、コピー元のID-3をコピー先に転記したいです。(ID1,2はすでに転記済み)
以下のように記載したのですが、なぜだかID12番以降が重複して転記されてしまいます。
コピー範囲や転記場所については特に困っていないのですが、重複だけ避けられていません。
アドバイスいただきたいです。
Set データ転記() 'コピー先とコピー元ファイルの定義部分は一部省略します。 Dim コピー先ファイル Set コピー先ファイル = 'ここはファイルパス Dim コピー元ファイル Set コピー元ファイル = 'ここにもファイルパス Dim MaxRow As Long Dim target 'A列のIDを重複チェックの基準にする Set target = コピー先ファイル.Worksheets("一覧").Range("A1:A1"& MaxRow) Dim n Dim コピー元ファイルのn行目 For n = 2 To コピー元ファイル.Worksheets(1).Cells(Rows.Count,1).End(xlUp).Row Set コピー元ファイルのn行目 = コピー元ファイル.Worksheets(1).Cells(n,"B") MaxRow = コピー先ファイル.Worksheets("一覧").Cells(Rows.Count,1).End(xlUp).Row 'コピー元ファイルのA列が一覧にまだ転記がない場合 ★ここの条件がうまくいっていない?★### ヘディングのテキスト If WorksheetFunction.CountIf(target,コピー元ファイルのn行目) = 0 then コピー元ファイル.Worksheets(1).Range(Cells(n,"A"),Cells(n,"D").Pstespecial Pate:=xPasteValues End if Next End sub
回答1件
あなたの回答
tips
プレビュー