Если вы копируете содержимое листа в одной книге на лист в другой, вам не нужно перебирать столбцы.
Вы можете сделать что-то вроде этого:
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