【发布时间】:2016-07-18 19:29:26
【问题描述】:
这是我的情况:我想从多个 Excel 工作表中复制表格并将其合并到一个新工作表中。到目前为止,我拥有的宏确实选择了表格,并创建了一个新工作表来组合数据,但是它确实如此合并时不选择表格的最后一行。感谢您的帮助:
Sub Trytocombine()
Dim J As Integer
On Error Resume Next
Sheets(1).Select
Worksheets.Add ' add a sheet in first place
Sheets(1).Name = "For Drafting"
' copy headings
Sheets(2).Activate
Range("A1").EntireRow.Select
Selection.CurrentRegion.Select
Selection.Copy Destination:=Sheets(1).Range("A1")
' work through sheets
For J = 2 To Sheets.Count ' from sheet 2 to last sheet
Sheets(J).Activate ' make the sheet active
Range("A1").Select
Selection.CurrentRegion.Select ' select all cells in this sheets
' select all lines except title
Selection.Offset(0, 0).Resize(Selection.Rows.Count - 1).Select
' copy cells selected in the new sheet on last line
Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
Next
End Sub
【问题讨论】:
-
我通常不使用“Offset”和“Selection”之类的东西,但我猜“Selection.Offset(0, 0)”应该是“Selection.Offset(1, 0)"。就目前而言,我认为它将第一行复制到最后一行 - 1。(但 Scott 的方法是一种更受欢迎的做事方式。)
-
只需将
.Offset(0, 0)替换为.Offset(1, 0)