2015-07-27 2 views
0

Я много искал то, что мне нужно, но нашел только это previous post, но не полностью помогает мне в том, что мне нужно (это самый близкий хоть).Excel VBA, чтобы скопировать ряд строк от одного листа к определенной строке в другом

Я создаю трекер для отслеживания записей на листе Excel, где я получаю исходный дамп данных из источника.

"Маячок" Лист

Column A  Column B  Column C  Column D 
Ref#   App name  Date   My own Comments 
001   Excel   01/01/2015  tracking deployment on 1/1 
002   Word   02/02/2015  tracking decom on 2/2 
003   PPT   03/03/2015  tracking upfrade on 3/3 

"Raw Data" Лист

Column A  Column B Column C 
Ref#   App name Date 
001    Excel  01/02/2015 
002    Word  02/03/2015 
003    PPT   03/04/2015 

Мне нужна макрос для копирования диапазона строк A1 до C1 из необработанных данных трекер без перезаписи моего колонка D. Также нужно, чтобы макрос вставлял это только в строку, где ссылка уже существует, поэтому мои комментарии действительны. Например, он будет искать ref 001 из Raw Data и посмотреть, что в Tracker, если он существует, затем скопируйте его в ту же строку. Иначе создайте новую строку с этой информацией. Эти даты время от времени меняются на основе исходных данных, и я хочу отслеживать эти изменения на основе столбцов столбцов трекера для отчетности.

Пожалуйста, дайте мне знать, если это работает в Macro, поскольку установка стороннего программного обеспечения на моем ПК может быть не вариантом.

+0

Hi. Добро пожаловать в StackOverflow. Мы здесь, чтобы помочь вам написать. Что у вас есть? – Bond

ответ

0
Dim dataSheet As Worksheet 
Dim copyToSheet As Worksheet 

Set dataSheet = Sheets("Raw Data") 
Set copyToSheet = Sheets("Tracker") 

'Unhide the sheet to dump data on 
copyToSheet.Visible = True 

dataSheet.Activate 

sheet1LastRow = dataSheet.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 

dataSheet.Range("A1:C" & sheet1LastRow).Copy 
copyToSheet.Range("A1").PasteSpecial xlPasteValues 

Это должно делать то, что вы хотите. Вы, возможно, придется изменить названия листов в верхней части, если я поставил их в неправильно :)

Также вы можете изменить «.PasteSpecial xlPasteValues» на «.Paste» вместо того, чтобы, если вы хотите сделать эквивалент удара Ctrl +V вместо Вклеивание только значений.

Смежные вопросы