好吧,我尝试寻找类似的问题,但由于这是我第一次查看Excel的VBA编辑器,所以我不太了解正在讨论的内容。将excel电子表格合并到一个电子表格中
简单来说,我有2个表格: “工作表Sheet1” 和 “Sheet2的”
表1:
A B
1 Header1 Header2
2 Text1 Info1
3 Text2 Info2
第2页:
A B
1 Header1 Header2
2 Text3 Info3
3 Text4 Info4
我想有一个宏将两张纸合并成一张新纸(Sheet3),如下所示:
A B
1 Header1 Header2
2 Text1 Info1
3 Text2 Info2
4 Text3 Info3
5 Text4 Info4
我试着录制一个宏并保存以备后用。为此,我创建了一个新工作表,将所有从Sheet1复制/粘贴到Sheet3,然后将除Sheet2之外的所有信息复制到Sheet3。
嗯,这个宏的工作原理是这个数据,但是我发现由excel生成的代码使它在粘贴数据之前选择了单元格A4(这里)。虽然这适用于这些数据,但如果每张表中的记录数量一次又一次发生变化,它将不起作用。基本上,
1)我想知道是否有一个函数在粘贴下一组数据之前自动进入最后一个相关单元格(在本例中为单元格A4,如果我有一个表格,则单元格A6 )。我已经看到了“ActiveCell.SpecialCells(xlLastCell).Select”(当我使用Ctrl + End时激活)功能,但是将我带到了工作表的末尾。使用该功能后,我需要类似于“Home”和“Down”箭头键的功能,才能使其效果最佳。
这些选项中的任何一个都适合我。^_^
这里是在2010年从Excel的宏录制记录我目前的VBA代码:
Sub Collate_Sheets()
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Select
Sheets(Sheets.Count).Name = "Sheet3"
Sheets("Sheet1").Select
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
Sheets("Sheet3").Select
ActiveSheet.Paste
ActiveCell.SpecialCells(xlLastCell).Select
' I need to select one cell below, and the cell in column A at this point
Sheets("Sheet2").Select
Range("A2").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet3").Select
ActiveSheet.Paste
End Sub
我希望我没有忘记任何信息的有用部分。让我知道,如果我做到了!
哦谢谢Doug!我不知道论坛选择了足够的语法高亮^^; – Jerry
要获取最后一个真正使用的单元格下面的行,可以编写'Range(“A”&Rows.Count).End(xlup).Offset(1)'。用你需要的任何列替换“A”。 –
不客气杰里。要突出显示,只需突出显示您的代码,然后单击顶部的代码图标即可。它看起来像'{}'。 –