2015-05-26 3 views
1

В листе Excel 1 У меня есть столбец с именем phonetype, который имеет несколько строк в каждой ячейке.Выделение несоответствующих ячеек с помощью vba

У меня есть лист 2 в той же книге Excel с названием колонки разрешен phonetype и некоторые строки в каждой ячейке.

Теперь я хочу сравнить, если строки в Phonetype колонке листа 1 такие же, как струны в allowed phonetype колонке листа 2; Если не выделить эти ячейки.

Все, что используется vba.

Sheet 1       Sheet 2 
column name:"Phonetype"    columnname:"allowed phone type" 
cell 1:welcome      cell 1:welcome 
cell 2:        cell 2:hi121 
cell 3:heythere 
cell 4:hi121 

строка "heythere" нет в листе 2 (колонка: "разрешено телефон типа"), так что должно быть выделено

+1

что вы сделали? Что не работает? Почтовый код, и вы должны показать, что вы пробовали. Просто, чтобы вы знали, довольно похожие вопросы, подобные этому, задавались и отвечали много раз, поэтому попробуйте функцию поиска. –

ответ

0

Вот что-то, чтобы вы начали

Option Explicit 
'// Campare and Hilight Unique 
Sub CompareHighlightUnique() 
    Dim Range1  As Range 
    Dim Range2  As Range 
    Dim i   As Integer 
    Dim j   As Integer 
    Dim isMatch  As Boolean 

    For i = 2 To Sheets("Sheet1").Range("A" & .Rows.Count).End(xlUp).Row 
     isMatch = False 
     Set Range1 = Sheets("Sheet1").Range("A" & i) 
     For j = 1 To Sheets("Sheet2").Range("A" & .Rows.Count).End(xlUp).Row 
      Set Range2 = Sheets("Sheet2").Range("A" & j) 
      If StrComp(Trim(Range1.Text), Trim(Range2.Text), vbTextCompare) = 0 Then 
       isMatch = True 
       Exit For 
      End If 
      Set Range2 = Nothing 
     Next j 
     If Not isMatch Then 
      Range1.Interior.Color = RGB(255, 0, 0) 
     End If 
     Set Range1 = Nothing 
    Next i 
End Sub 

Чтобы изменить цвет подсветки редактировать RGB(255, 0, 0)

изменить Лист1 Лист2 или редактировать ("Sheet1") and ("Sheet2")

0

Проверьте это ,,

Sub Button1_Click() 
    Dim ws As Worksheet, sh As Worksheet 
    Dim Rws As Long, Rng As Range, a As Range 
    Dim Rws2 As Long, rng2 As Range, c As Range 

    Set ws = Sheets("Sheet1") 
    Set sh = Sheets("Sheet2") 

    With ws 
     Rws = .Cells(.Rows.Count, "A").End(xlUp).Row 
     Set Rng = Range(.Cells(2, 1), .Cells(Rws, 1)) 
     Rng.Interior.ColorIndex = 6 
    End With 

    With sh 
     Rws2 = .Cells(.Rows.Count, "A").End(xlUp).Row 
     Set rng2 = Range(.Cells(2, 1), .Cells(Rws2, 1)) 
    End With 

    For Each a In Rng.Cells 
     For Each c In rng2.Cells 
      If a = c Then a.Interior.Color = xlNone 
     Next c 
    Next a 

End Sub 

Found here,

+0

В листе 2 у меня есть столбец с именем «разрешенный тип phonetype», который содержит список строк, например. ячейка 1 = abc, cell2 = def и т. д. Теперь в листе 1 под столбцом «phonetype» ячейки содержат строки, такие как ячейка 1 = abc, ячейка 3 = ghf и т. д. Я должен выделить ячейки, если строки в листе 1 не равны ни одной из строк в листе 2. Можете ли вы изменить свой код? –

+0

, пожалуйста, посмотрите на это http://stackoverflow.com/questions/30474144/how-to-loop-through-numbers-in-vba?noredirect1_comment49039212_30474144 –

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