Вы начинаете с создания двух рабочих книг. Теперь у вас есть три книги. Оригинал (который содержит программный код) называется ThisWorkbook, два других - объектными переменными. Затем вы начинаете цикл по каждой строке на вашей существующей странице и используете оператор IF, чтобы перевести каждую строку в один или другой пункт назначения. Вы останавливаетесь, когда достигаете пустой строки. Вот пример (обратите внимание, вам придется расширить это самостоятельно)
Sub Example()
Dim wb as workbook 'declare an objvet variable
Set wb = workbooks.add() 'point it to a new instance of the workbook class
wb.saveas "File1.xlsx" 'save it as file1
dim source as Range 'pointer to original file
dim target1 as range 'pointer to destination
set Source = thisworkbook.worksheets(1),range("a1") 'point to a1 in source file
set target = wn.worksheets(1).range("a1")
Do 'start a loop
if source.text = "fred" then 'id cell holds this text then....
source.entirerow.copy target 'copy source to target
set target = target.offset(1,0) 'move target pointer down one row, no columns
end if
set source = source.offset(1,0) 'move source pointer
loop until source = "" 'stop at first blank cell
wb.save
См. http://msdn.microsoft.com/en-us/library/ms754152.aspx для начала ... звучит так, что вас может особенно заинтересовать таблица в разделе "Панели интерфейса пользователя".
Я бы порекомендовал посмотреть на запись MSDN о панелях и этот пример в частности первый. Методы MeasureOverride и ArrangeOverride обрабатывают всю логику, связанную с макетом.