あるシートから別のシートに内容をコピーしたい。私は使用しようとしています:
For Each r In tempWbk.Sheets("BSC").Columns
tempWbk.Sheets("BSC").Columns(r) = instanceWbk.Sheets("BSC").Columns(r)
Next
しかし、うまくいきません。なにか提案を?
あるブックのシートの内容を別のブックのシートにコピーする場合、列をループする必要はありません。
次のようなことができます。
Sub CopyCells()
Dim srcWb As Workbook
Dim tgtWb As Workbook
Dim srcWs As Worksheet
Dim tgtWs As Worksheet
Set srcWb = ThisWorkbook
Set tgtWb = Workbooks.Open("C:\Temp\Targetbook.xlsx")
Set srcWs = srcWb.Sheets("BSC")
Set tgtWs = tgtWb.Sheets("BSC")
srcWs.Cells.Copy tgtWs.Range("A1")
End Sub
列ごとにコピーする必要がある特定の理由がある場合は、これを出発点として使用できます。
Sub CopyColumns()
Call CopyThisManyColumns(5)
End Sub
Sub CopyThisManyColumns(colCount As Integer)
Dim srcWb As Workbook
Dim tgtWb As Workbook
Dim srcWs As Worksheet
Dim tgtWs As Worksheet
Dim lastRow As Long
Dim i As Integer
Set srcWb = ThisWorkbook
Set tgtWb = Workbooks.Open("C:\Temp\Targetbook.xlsx")
Set srcWs = srcWb.Sheets("BSC")
Set tgtWs = tgtWb.Sheets("BSC")
For i = 1 To colCount
lastRow = srcWs.Cells(srcWs.Rows.Count, i).End(xlUp).Row
srcWs.Range(srcWs.Cells(1, i), srcWs.Cells(lastRow, i)).Copy tgtWs.Cells(1, i)
Next i
End Sub