Страницы: 1
RSS
Копирование строк с одного листа на другой.
 
Здравствуйте ещё раз.  
 
Встала задача передо мной. Заключается в следующем:  
 
На листе 1 и 2 есть две таблицы. В листе 1 требуется определять заполненость таблицы с первой по последнюю заполненую строку таблицы. Копировать её. И вставлять в таблицу листа 2 с последней пустой строки таблицы. При этом прибавлять к каждой строке значения двух ячеек, которые заполняются в ручную.  
 
Как должен выглядеть код?  
 
Мой пример выложил.
 
Dim x As Long    
Sheets("Лист 1").Select    
x = Cells(Rows.Count, 2).End(xlUp).Row    
Rows("22:" & x).Select    
Selection.Copy  
Sheets("Лист 2").Select  
 
Вот пока разобрался в коде поиска последней строки на первом листе и копирование диапазона с первой по последнюю строку. Как дальше быть?
 
Ребят, кто может помогите разобраться, пожалуйста.
 
пробуйте:
 
Спасибо большое :) разобрался.    
А как сделать сравнение этих двух листов по значению столбца B? То есть для каждой строки это значение уникальное. Если допустим совпадает, то на листе 1 строка окрашивается в зеленый цвет.
 
товарищи и мне подскажите на этом примере!
 
милые люди ну расскажите как делать сравнение двух таблиц с начального столбца по определенный с выделением цветом совпадений???!
 
{quote}{login=Евгенчий}{date=22.01.2012 09:32}{thema=}{post}... ну расскажите...{/post}{/quote}  
... ну смотрите -    
<EM>http://www.planetaexcel.ru/tip.php?aid=66 </EM>... ;)
 
Ну чето ниче не понял там, там же нету именно программным путём через макрос. Как быть подскажите хоть чтото потестировать(
 
Евгенчий, вот ничего не понял, что Вы хотите узнать. Как сравнивать, что с чем? Например вот есть макрос по сравнению: http://www.planetaexcel.ru/forum.php/plex.php?thread_id=36789 Правда там код довольно сложный, т.к. эта покраска всё дело усложняет. Но принцип простой - вот как делал бы эту работу человек с хорошей памятью? :) Сперва посмотрел одну таблицу и запомнил содержимое. Потом пробежался глазами по второй таблице и соответственно действовал по задаче - отметил/покрасил/стёр нужное/ненужное. Т.е. посмтрел, вспомнил, что такое есть или нет во второй таблице, среагировал. Если память не очень - на каждые элемент первой таблицы открываем вторую и проверяем, есть ли там такой. Соответственно, есть два алгоритма кода - быстрый на словаре (это с запоминанием), и медленный цикл в цикле по двум спискам данных. В примере быстрый, как я там выше описал - одну таблицу в массив, затем в словарь, затем вторую таблицу в массив, проверяем по словарю. По результату проверки действуем. Всё.
 
{quote}{login=Нубасик}{date=19.01.2012 01:07}{thema=}{post}Вот пока разобрался в коде поиска последней строки на первом листе и копирование диапазона с первой по последнюю строку. Как дальше быть?{/post}{/quote}  
Такая же задача, на соседнем форуме встретилось:  
 
Public Sub CopyPaste1()     ' эта функция копирует записи за сегодня и вставляет их в общую базу  
   Dim maxRowSrc As Integer, maxRowTrg As Integer  ' объявление переменных  
 
   maxRowSrc = GetMaxRow("СПИСОК")     ' определяем количество строк на листе "СПИСОК"  
   maxRowTrg = GetMaxRow("БАЗА")      ' определяем количество строк на листе "БАЗА"  
 
   ' копирование и вставка без всяких выделений - так проще и быстрее  
   Worksheets("СПИСОК").Range("2:" & maxRowSrc).Copy Sheets("БАЗА").Cells(maxRowTrg + 2, 1)  
End Sub  
 
Только вот подскажите, а как диапазон в Range задать не от второй строчки, а от i-ой.
 
Вариант:  
Range(Cells(i, 1), Cells(maxRowSrc, 1)).EntireRow.Copy...
 
Спасибо огромное !  
Этот VBA, млин, миллион вариантов и ненормативная лексика.
Страницы: 1
Читают тему
Наверх