|
こんにちは。
以下では、ファイルAのシート1のセルA2から、ファイルBのシート1のセルA2へ、ファイルAのシート1のセルA3から、ファイルBのシート1のセルA3へ、、
ファイルAのシート1のセルB2から、ファイルBのシート1のセルB2へ、ファイルAシート1のセルB3から、ファイルBのシート1のセルB3へ、、、、
ファイルAのシート1のセルC2から、ファイルBのシート1のセルC2へ、ファイルAのシート1のセルC3から、ファイルBのシート1のセルC3へ、、、、
ファイルAのシート1のセルD2から、ファイルBのシート1のセルD2へ、ファイルAのシート1のセルD3から、ファイルBのシート1のセルD3へ、、、、
と文字列を移しています。
ファイルBの1行目はタイトル行です。
このときたとえばファイルAのシート1のセルB2に文字列が入っていないと、ファイルBのシート1のセルB2に(ブランクのままでよいのに)ファイルBのシート1のセルB1のタイトルが入ってしまいます。どこがいけないからでしょうか?
ロジック自体もな何かもっとループか何かで洗練させることできるでしょうか?
ご教示ください。
Sub Test()
Dim v
With Workbooks("A.xls").Worksheets("Sheet1")
v = .Range("A2", _
.Cells(.Rows.Count, "A").End(xlUp)).Value
End With
With Workbooks("B.xls").Worksheets("Sheet1")
.Range("A2").Resize(UBound(v), 1).Value = v
.Range("A2").Value = v
End With
With Workbooks("A.xls").Worksheets("Sheet1")
v = .Range("B2", _
.Cells(.Rows.Count, "B").End(xlUp)).Value
End With
With Workbooks("B.xls").Worksheets("Sheet1")
.Range("B2").Resize(UBound(v), 1).Value = v
.Range("B2").Value = v
End With
With Workbooks("A.xls").Worksheets("Sheet1")
v = .Range("C2", _
.Cells(.Rows.Count, "C").End(xlUp)).Value
End With
With Workbooks("B.xls").Worksheets("Sheet1")
.Range("C2").Resize(UBound(v), 1).Value = v
.Range("C2").Value = v
End With
With Workbooks("A.xls").Worksheets("Sheet1")
v = .Range("D2", _
.Cells(.Rows.Count, "D").End(xlUp)).Value
End With
With Workbooks("B.xls").Worksheets("Sheet1")
.Range("D2").Resize(UBound(v), 1).Value = v
.Range("D2").Value = v
End With
With Workbooks("A.xls").Worksheets("Sheet1")
v = .Range("E2", _
.Cells(.Rows.Count, "E").End(xlUp)).Value
End With
With Workbooks("B.xls").Worksheets("Sheet1")
.Range("E2").Resize(UBound(v), 1).Value = v
.Range("E2").Value = v
End With
With Workbooks("A.xls").Worksheets("Sheet1")
v = .Range("F2", _
.Cells(.Rows.Count, "F").End(xlUp)).Value
End With
With Workbooks("B.xls").Worksheets("Sheet1")
.Range("F2").Resize(UBound(v), 1).Value = v
.Range("F2").Value = v
End With
End Sub
|
|