|
▼YN62 さん 今晩は。
確かめてないのですが、これでできると思います。
Sub 異なる表組みへの転記()
Dim k As Integer
Dim r1 As Range, r2 As Range
Dim 範囲11 As Range, 範囲12 As Range, 範囲13 As Range
Dim 範囲21 As Range, 範囲22 As Range
Dim UnionRng1 As Range, UnionRng2 As Range
'ブックを見えないようにする
Application.ScreenUpdating = False
destFolder = "c:\集計" '<===============環境に合わせて変更してください
Workbooks.Open Filename:=destFolder & "\得点1.xls"
ThisWorkbook.Activate
'
With ThisWorkbook.Sheets("Sheet1")
Set 範囲11 = .Range("A4", .Cells(65536, "A").End(xlUp).Offset(-1))
Set 範囲12 = .Range("C4", .Cells(65536, "C").End(xlUp).Offset(-1))
Set 範囲13 = .Range("E4", .Cells(65536, "E").End(xlUp).Offset(-1))
End With
With Workbooks("得点1").Sheets("Sheet2")
Set 範囲21 = .Range("A2", .Cells(65536, "A").End(xlUp).Offset(-1))
Set 範囲22 = .Range("D2", .Cells(65536, "D").End(xlUp).Offset(-1))
End With
'
Set UnionRng1 = Union(範囲11, 範囲12, 範囲13)
Set UnionRng2 = Union(範囲21, 範囲22)
'UnionRng2.Offset(, 1).ClearContents
'
For Each r1 In UnionRng1
For Each r2 In UnionRng2
If r1.Value = r2.Value Then
r2.Offset(, 1).Value = r1.Offset(, 1).Value
End If
Next
Next
'
Workbooks("得点1").Close False
'
Set 範囲11 = Nothing
Set 範囲12 = Nothing
Set 範囲13 = Nothing
'
Set 範囲21 = Nothing
Set 範囲22 = Nothing
Set UnionRng1 = Nothing
Set UnionRng2 = Nothing
End Sub
>又、質問で申し訳けありません。
>
>ご解答いただいたコードの続きですが・・・
>シート2が異なるブックにある場合に、コードをどのように
>書けば良いのでしょうか?
>
>シート2が「集計」というホルダ−の「得点1」と言うブックに
>あると仮定した場合のコードを教えていただけませんでしょうか。
>
>よろしくお願いいたします。
|
|