使用动态列号复制和循环

时间:2017-02-12 17:00:58

标签: vba excel-vba loops excel

我正在尝试使用“j”作为列的计数器。我尝试使用它如下,但在我有“j”代表一行。宏工作,但只复制第25 - 27行。

有谁能告诉我如何使用j作为列号?另外,我如何复制它以便保留列宽?

    Sub CopyFinal()


        Set i = Sheets("MedicalBenefits")
        Set e = Sheets("Final")

        Dim j As Integer
        j = 2

        Application.ScreenUpdating = False

        Do Until IsEmpty(i.Cells(5, j))
            i.Range(j & "5:" & j & "27").Copy e.Range(j & "5:" & j & "27")
            j = j + 1
        Loop

        Application.ScreenUpdating = True

End Sub

2 个答案:

答案 0 :(得分:1)

切换到Cells(rowIndex, columnIndex)语法以使用整数列索引

    Do Until IsEmpty(i.Cells(5, j))
        i.Cells(5, j).Resize(23).Copy e.Cells(5, j)
        j = j + 1
    Loop

答案 1 :(得分:0)

使用Offset()

    j = 0

    Application.ScreenUpdating = False

    Do Until IsEmpty(range("B5").offset(0,j))
        i.Range("B5:B27").Offset(0,j).Copy e.Range("B5:B27").Offset(0,j)
        j = j + 1
    Loop