2013-08-25 3 views

ответ

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 
Смежные вопросы