|
▼だいすけ さん:
>▼ハチ さん:
>大変なものを、ありがとうございました!
>
>早速走らせてみたのですが、
>With Worksheets("集めた目録").Range(Range("A1"), Range("A65536").End(xlUp)).Offset(, 255)
>この部分で、引っかかってしまいます。
自動改行が入ってたからでしょうか?
もしくは、実行時の選択しているSheetが良くなかったか・・・
下のマクロで貼りなおしてください。
>あと、各シートのI列、とV列をあけないといけないのですが、
>”〜マスター”シートは埋まっています。
I列とV列 ではなく、「IV列」です。
シートの一番右端の255列目のところですが、使ってます?
Sub test()
Dim ws As Worksheet
Dim CV_r As Long 'CVPARTSのRow
Dim R As Range '集めた目録のRange
Dim F As Variant '検索用
'IV列に検索文字列作成
With Worksheets("集めた目録").Range(Worksheets("集めた目録").Range("A1"), _
Worksheets("集めた目録").Range("A65536").End(xlUp)).Offset(, 255)
.Formula = "=CONCATENATE(A1,B1)"
.Value = .Value
End With
For Each ws In ThisWorkbook.Worksheets
If InStr(1, ws.Name, "マスター") <> 0 Then
With ws.Range(ws.Range("A1"), ws.Range("A65536").End(xlUp)).Offset(, 255)
.Formula = "=CONCATENATE(D1,G1)"
.Value = .Value
End With
End If
Next ws
CV_r = 10 'CV_rは10行目から
'集めた目録のIV列をループ
For Each R In Range(Worksheets("集めた目録").Range("IV1"), _
Worksheets("集めた目録").Range("IV65536").End(xlUp))
'マスターを含むWorkSheetsをループ
For Each ws In ThisWorkbook.Worksheets
If InStr(1, ws.Name, "マスター") <> 0 Then
'マスターIV列でRを検索してあったら、CVRARTSに書き込み
Set F = ws.Range("IV:IV").Find(R.Value, , xlValues, xlWhole)
If Not F Is Nothing Then
With Worksheets("CVPARTS")
.Range(.Cells(CV_r, 5), .Cells(CV_r, 19)).Value = _
ws.Range(ws.Cells(F.Row, 4), ws.Cells(F.Row, 18)).Value
End With
'CV_r を1行移動
CV_r = CV_r + 1
Exit For
End If
End If
Next ws
Next R
'IV列を削除
Worksheets("集めた目録").Range("IV:IV").Clear
For Each ws In ThisWorkbook.Worksheets
If InStr(1, ws.Name, "マスター") <> 0 Then
ws.Range("IV:IV").Clear
End If
Next ws
End Sub
|
|