运行 两个变量循环来增加 diff 的列号。床单

Run two variable loop to increment the column number for diff. sheets

我想 运行 通过采用两个变量(例如 i 和 j)来循环执行此操作。假设我代表 sheet 1 和 2,j 代表 Sheet 3,直到我没有到达 sheet 1 或 2 的末尾列。

Sub CopyColumn()
'
' CopyColumn Macro
'

'
    Sheets("Sheet1").Select
    Columns("A:A").Select
    Selection.Copy
    Sheets("Sheet3").Select
    Columns("A:A").Select
    ActiveSheet.Paste
    Sheets("Sheet2").Select
    Columns("A:A").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Sheet3").Select
    Columns("B:B").Select
    ActiveSheet.Paste
    Sheets("Sheet1").Select
    Columns("B:B").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Sheet3").Select
    Columns("C:C").Select
    ActiveSheet.Paste
    Sheets("Sheet2").Select
    Columns("B:B").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Sheet3").Select
    Columns("D:D").Select
    ActiveSheet.Paste
    Sheets("Sheet1").Select
    Columns("C:C").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Sheet3").Select
    Columns("E:E").Select
    ActiveSheet.Paste
    Sheets("Sheet2").Select
    Columns("C:C").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Sheet3").Select
    Columns("F:F").Select
    ActiveSheet.Paste
End Sub

我想 运行 通过采用两个变量(例如 i 和 j)来循环执行此操作。假设 i 用于 sheet 1 和 2,j 用于 Sheet 3,直到我没有到达 sheet 1 或 2

的末尾列

尝试两个循环

    Sub CopyColumn()
    Dim sh1 As Worksheet, sh2 As Worksheet
    Dim dest As Worksheet, i, j
    Dim L1 As Long, L2 As Long
    Set sh1 = Sheets("Sheet1")
    Set sh2 = Sheets("Sheet2")
    Set dest = Sheets("Sheet3")

    With sh1
        L1 = .Cells.Find(What:="*", After:=.Range("A1"), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    End With
    With sh2
        L2 = .Cells.Find(What:="*", After:=.Range("A1"), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    End With
    With dest
        x = 0
        For i = 1 To L1
            sh1.Columns(i).Copy .Cells(1, 1 + x)
            x = x + 2
        Next i
        x = 0
        For j = 1 To L2
            sh2.Columns(j).Copy .Cells(1, 2 + x)
            x = x + 2
        Next j
    End With
   
End Sub