运行 两个变量循环来增加 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
我想 运行 通过采用两个变量(例如 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