好吧,我嘗試尋找類似的問題,但由於這是我第一次查看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」。 –
不客氣傑裏。要突出顯示,只需突出顯示您的代碼,然後單擊頂部的代碼圖標即可。它看起來像'{}'。 –