【发布时间】:2017-06-04 23:21:08
【问题描述】:
我正在处理一项任务,我需要将 Sheet1 和 Sheet2 中的特定列复制到 Sheet3 中。
应该复制数据的工作表从第 14 行开始。Sheet1 和 Sheet2 中的数据的长度也不同。
我已经找到了一种将数据从 Sheet1 复制到 sheet3 的方法(通过研究)。问题是当我尝试将数据从 sheet2 复制到 sheet3 时,我的代码只是覆盖了从 sheet1 复制的 sheet3 中的数据。
我希望我的代码将数据从 sheet2 复制到 sheet3,并将其直接放在从 sheet1 复制的数据下方。而且由于 sheet1 中的数据可能会有所不同(它可能包含 0 行或 100 行)。
Sub copyDataFromTwoSheetsIntoOneSheet()
With Sheets("Sheet1")
.AutoFilterMode = False
LR = .Range("B" & .Rows.Count).End(xlUp).Row
.Range("B14:O" & LR).AutoFilter Field:=14, Criteria1:="<>"
If LR > 1 Then
.Range("B14:B" & LR).Copy
Sheets("Sheet3").Range("B14").PasteSpecial xlPasteValues
.Range("C14:C" & LR).Copy
Sheets("Sheet3").Range("C14").PasteSpecial xlPasteValues
.Range("D14:D" & LR).Copy
Sheets("Sheet3").Range("D14").PasteSpecial xlPasteValues
.Range("E14:E" & LR).Copy
Sheets("Sheet3").Range("E14").PasteSpecial xlPasteValues
.Range("F14:F" & LR).Copy
Sheets("Sheet3").Range("F14").PasteSpecial xlPasteValues
.Range("G14:G" & LR).Copy
Sheets("Sheet3").Range("G14").PasteSpecial xlPasteValues
.Range("H14:H" & LR).Copy
Sheets("Sheet3").Range("H14").PasteSpecial xlPasteValues
.Range("I14:I" & LR).Copy
Sheets("Sheet3").Range("I14").PasteSpecial xlPasteValues
.Range("J14:J" & LR).Copy
Sheets("Sheet3").Range("J14").PasteSpecial xlPasteValues
.Range("O14:O" & LR).Copy
Sheets("Sheet3").Range("N14").PasteSpecial xlPasteValues
End If
.AutoFilterMode = False
End With
With Sheets("Sheet2")
.AutoFilterMode = False
LR = .Range("B" & .Rows.Count).End(xlUp).Row
.Range("B14:M" & LR).AutoFilter Field:=12, Criteria1:="<>"
If LR > 1 Then
.Range("B14:B" & LR).Copy
Sheets("Sheet3").Range("B14").PasteSpecial xlPasteValues
.Range("C14:C" & LR).Copy
Sheets("Sheet3").Range("C14").PasteSpecial xlPasteValues
.Range("D14:D" & LR).Copy
Sheets("Sheet3").Range("D14").PasteSpecial xlPasteValues
.Range("E14:E" & LR).Copy
Sheets("Sheet3").Range("E14").PasteSpecial xlPasteValues
.Range("F14:F" & LR).Copy
Sheets("Sheet3").Range("F14").PasteSpecial xlPasteValues
.Range("G14:G" & LR).Copy
Sheets("Sheet3").Range("G14").PasteSpecial xlPasteValues
.Range("H14:H" & LR).Copy
Sheets("Sheet3").Range("H14").PasteSpecial xlPasteValues
.Range("I14:I" & LR).Copy
Sheets("Sheet3").Range("I14").PasteSpecial xlPasteValues
.Range("J14:J" & LR).Copy
Sheets("Sheet3").Range("J14").PasteSpecial xlPasteValues
.Range("M14:M" & LR).Copy
Sheets("Sheet3").Range("N14").PasteSpecial xlPasteValues
End If
.AutoFilterMode = False
End Sub
【问题讨论】: