0

あるシートから別のシートに内容をコピーしたい。私は使用しようとしています:

        For Each r In tempWbk.Sheets("BSC").Columns
            tempWbk.Sheets("BSC").Columns(r) = instanceWbk.Sheets("BSC").Columns(r)
        Next

しかし、うまくいきません。なにか提案を?

4

1 に答える 1

0

あるブックのシートの内容を別のブックのシートにコピーする場合、列をループする必要はありません。

次のようなことができます。

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
于 2013-08-25T18:42:17.210 に答える