Объединение таблиц Excel в одну таблицу

Хорошо, я пытался найти похожие вопросы, но я не очень понимал, о чем идет речь, так как я впервые смотрю на редактор VBA в Excel.

Проще говоря, у меня есть 2 таблицы: «Лист1» и «Лист2»

Лист 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).

2) Я видел функцию «ActiveCell.SpecialCells (xlLastCell) .Select» (активируется, когда я использую Ctrl + End), но она переносит меня в конец листа. Мне нужно что-то похожее на клавиши со стрелками «Домой» и «Вниз» после использования этой функции, чтобы это работало лучше.

Любой из этих вариантов будет хорошо со мной. ^ _ ^

Вот мой текущий код VBA, записанный с Macro Recorder в Excel 2010:

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

Надеюсь, я не забыл ни одной полезной информации. Дайте мне знать, если я сделал!

Ответы на вопрос(2)

Ваш ответ на вопрос