(Excel) Сравнение двух колонок

Программирование на Visual Basic for Applications
mrkoder
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 11.01.2007 (Чт) 22:05

(Excel) Сравнение двух колонок

Сообщение mrkoder » 13.01.2007 (Сб) 22:49

Как выделить все значения колонки B зеленым цветом, значения которые есть в колонке А. Т.е. как определить, какие из значений в колонке B присутствуют в колонке А

mrkoder
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 11.01.2007 (Чт) 22:05

Сообщение mrkoder » 14.01.2007 (Вс) 1:27

так!
Код: Выделить всё
Sub s_Test()
  Dim v_Sh As Worksheet
  Dim v_Rng As Range, v_Cell As Range
  Dim v_Var As Double
   
  Set v_Sh = ActiveSheet
  Set v_Rng = Intersect(v_Sh.Columns(2), v_Sh.UsedRange)

  On Error Resume Next
  For Each v_Cell In v_Rng.Cells
    If v_Cell <> Empty Then
      v_Var = WorksheetFunction.Match(v_Cell, v_Sh.Columns(1), 0)
      If Err.Number <> 0 Then
        Err.Clear
      Else
        v_Cell.Interior.ColorIndex = 4
      End If
    End If
  Next v_Cell
End Sub

Чудовище под кроватью
Обычный пользователь
Обычный пользователь
 
Сообщения: 88
Зарегистрирован: 27.11.2006 (Пн) 14:46
Откуда: А из ника не ясно?

Сообщение Чудовище под кроватью » 15.01.2007 (Пн) 7:39

А зачем тут VBA? Достаточно для ячеек в столбце B сделать условное форматирование:
Для первой ячейки столбца B ставишь условие: =поискпоз(B1;A:A;0)>0. Ну и для остальных просто: Правка-Заполнить-Вниз.
У-у-у!!

mrkoder
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 11.01.2007 (Чт) 22:05

Сообщение mrkoder » 15.01.2007 (Пн) 10:46

На VBA удобнеее на кнопку нажал и все..

Чудовище под кроватью
Обычный пользователь
Обычный пользователь
 
Сообщения: 88
Зарегистрирован: 27.11.2006 (Пн) 14:46
Откуда: А из ника не ясно?

Сообщение Чудовище под кроватью » 15.01.2007 (Пн) 11:58

mrkoder писал(а):На VBA удобнеее на кнопку нажал и все..

А без VBA вообще ничего нажимать не надо и работает быстро. :wink:
VBA нужно использовать только там, где стандартными средствами Excel не обойтись, поскольку VBA значительно уступает по быстродействию. Например, сделай 2 столбца по 10000 элементов и попробуй запустить свой макрос ;). А вот условное форматирование даже при 65535 строках отрабатывает за доли секунды.
Если уж так принципиально надо макрос написать, то лучше, если он будет действовать так же, как если делать руками. Например:
1. Создается макросом условное форматирование для 1 ячейки столбца
2. Через AutoFill заполняется столбец.
У-у-у!!

Krasnaja Shapka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 87
Зарегистрирован: 26.10.2006 (Чт) 12:13
Откуда: Киев

Сообщение Krasnaja Shapka » 15.01.2007 (Пн) 18:01

Чудовище под кроватью писал(а):А зачем тут VBA? Достаточно для ячеек в столбце B сделать условное форматирование:
Для первой ячейки столбца B ставишь условие: =поискпоз(B1;A:A;0)>0. Ну и для остальных просто: Правка-Заполнить-Вниз.

полюбому условное форматирование лучше VBa, с одним исключением: выделяешь весь столбец В и ставишь данное условие... и не надо никаких Правка-Заполнить-Вниз или AutoFill :))) эксель все сделает автоматом...
Если ясность вашего объяснения исключает ложное толкование, все равно кто-то поймет вас неправильно.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 75

    TopList  
cron