Сравнить два списка

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Soroka40
Сообщения: 2
Зарегистрирован: 12 мар 2008, 10:26

Всем привет.
Есть два листа Exel, нужно сравнить в них A1 и удалить из листа1 все совпадающие ячейки с листом2.
Вопрос, возможно, глупый, но вы простите блондинку и помогите....
спасибо!
Аватара пользователя
AlexZZZ
Сообщения: 237
Зарегистрирован: 01 июн 2007, 00:27
Откуда: Москва и область

Ваш вопрос не точно сформулирован. Если надо удалить все совпадающие значения из ячеек, то сравнивать нужно не только по A1? Или сравниваются только А1 на лист2 и несколько ячеек на лист1? И в каком диапазоне?
Soroka40
Сообщения: 2
Зарегистрирован: 12 мар 2008, 10:26

AlexZZZ писал(а):Ваш вопрос не точно сформулирован. Если надо удалить все совпадающие значения из ячеек, то сравнивать нужно не только по A1? Или сравниваются только А1 на лист2 и несколько ячеек на лист1? И в каком диапазоне?


Надо удалить все строки, в которых значения А1 совпадают. Сравнивать, таким образом, нужно только по А1.
Спасибо.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Soroka40, воспользуйтесь автофильтрами или расширенным фильтром.
Они позволяют скрывать или получать отфильтрованный список на отдельном листе соответственно.
Меню
Данные/Фильтр/Автофиоттр
Данные/Фильтр/Расширенный фильтр...
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте Soroka40.
"...удалить все строки, в которых значения А1 совпадают..."
Перефразированный вопрос - "в которых значения совпадают с А1" можно принять, иначе не верно. Адрес "А1" пренадлежит первой строке листа "...в которых значения А1 совпадают...", так сколько листов в документе? Совпадающие значения могут быть расположены в любом месте листа или в определенном диапазоне?
Евгений.
Аватара пользователя
AlexZZZ
Сообщения: 237
Зарегистрирован: 01 июн 2007, 00:27
Откуда: Москва и область

Soroka40, вот макрос, сравнивающий ячейки A1 на листах 1 и 2 и удаляющий при совпадении первую строку на листе 1:

Код: Выделить всё

Sub SravnenieA1()
    If Worksheets("Лист1").Cells(1, 1).Value = Worksheets("Лист2").Cells(1, 1).Value Then _
        Worksheets("Лист1").Rows(1).Delete
End Sub
Или сравнивать нужно всё же не только по A1, а ячейки по первому столбцу в некотором диапазоне? Если да, то определите диапазон, напишем Вам нужный макрос. Пока до сих пор непонятно, что же конкретно Вам нужно.
Jainy_90
Сообщения: 2
Зарегистрирован: 29 май 2009, 22:55

"....
Код:

Sub SravnenieA1()
If Worksheets("Лист1").Cells(1, 1).Value = Worksheets("Лист2").Cells(1, 1).Value Then _
Worksheets("Лист1").Rows(1).Delete
End Sub

Или сравнивать нужно всё же не только по A1, а ячейки по первому столбцу в некотором диапазоне? Если да, то определите диапазон, напишем Вам нужный макрос. Пока до сих пор непонятно, что же конкретно Вам нужно...."


помогите пожалуйста!!! вот мне надо сравнить диапазон ("C2:Z41") на Листе 1 и диапазон ("C2:Z41") на Листе 2...и там где они не равны, выделить красным цветом
Аватара пользователя
AlexZZZ
Сообщения: 237
Зарегистрирован: 01 июн 2007, 00:27
Откуда: Москва и область

&quot писал(а):помогите пожалуйста!!! вот мне надо сравнить диапазон ("C2:Z41") на Листе 1 и диапазон ("C2:Z41") на Листе 2...и там где они не равны, выделить красным цветом
Если адреса диапазонов совпадают, а выделять нужно несовпадающие ячейки на Лист2, тогда так:

Код: Выделить всё

  Dim MyRange As Range, oCell As Range, sCell As Range
  Set MyRange = Worksheets("Лист1").Range("C2:Z41")
   
  For Each oCell In MyRange
    Set sCell = Worksheets("Лист2").Cells(oCell.Row, oCell.Column)
    If oCell.Value <> sCell.Value Then sCell.Interior.Color = 255
  Next
Jainy_90
Сообщения: 2
Зарегистрирован: 29 май 2009, 22:55

СПАСИБО ОГРОМНЕЙШЕЕ!!!!!!!! ТЫ- МОЙ СПАСИТЕЛЬ!!!!! :) :) :)
Аватара пользователя
AlexZZZ
Сообщения: 237
Зарегистрирован: 01 июн 2007, 00:27
Откуда: Москва и область

Рад был помочь.
Ответить