以下のマクロについて教えてください。
最初のデータ入力時にはsheet1、sheet2ともに同じ管理番号があります。(1枚目の画像参照)
その後sheet1の工事会社を変えて管理番号を削除することがあります。
その場合マクロを実行するとsheet1に違った管理番号のデータが反映されることがあります。(2枚目の画像)
このようなパターンでもsheet2の管理番号に対応するデータを、sheet1に正しく反映させるのにはどのように対処すればいいのでしょうか?
sheet1=管理台帳
sheet2=(B社)管理台帳
Sub 工事会社工程コピー()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim ws1Key As Range
Dim i As Long
Dim r As Long
MsgBox "管理番号は入力済みですか?"
ActiveSheet.AutoFilterMode = False
On Error Resume Next
Set ws1 = Worksheets("管理台帳") Set ws1Key = ws1.Range("C10", ws1.Cells(Rows.Count, "C").End(xlUp)) ' Set ws2 = Worksheets("(B社)管理台帳") For i = 10 To ws2.Cells(Rows.Count, "C").End(xlUp).Row r = WorksheetFunction.match(ws2.Cells(i, 3).Value, ws1Key, 0) + 9 ws1.Range(ws1.Cells(r, 4), ws1.Cells(r, 9)).Value _ = ws2.Range(ws2.Cells(i, 4), ws2.Cells(i, 9)).Value Next
「その後sheet1の工事会社を変えて管理番号を削除する」という操作をしたら、sheet1の内容はどうなるのですか? 「その場合マクロを実行するとsheet1に違った管理番号のデータが反映されることがあります」ということは、sheet1に正しい管理番号のデータが反映される場合と、違った管理番号が反映されることがあるという事ですか? 正しいデータが反映される場合のsheet1の内容と、違った管理番号が反映される場合のsheet1の内容を示してください。
ご検討いただきありがとうございます。
2番目の画像にもありますが、12行目のデータは正しく反映されませんでした。そのほかの行は正しく反映されました。
回答1件
あなたの回答
tips
プレビュー