2013-10-03 3 views
0

У меня есть проблема в сравнении ячеек с разным значением, но он работает, если сравнимое значение одинаково. Проблема, с которой я столкнулся, заключается в сравнении между ячейкой A1: A100 в рабочем листе1 и ячейкой B3: B1000 на листе 2. Если значение в рабочем листе1 и рабочем листе равно равное, оно будет вставлено в ячейку A на рабочем листе3, которое я могу сделать. Если значение не равно, оно будет вставлено в ячейку B в рабочем листе3, это проблема, с которой я столкнулся. Это мой код.Сравнение ячеек с одинаковыми/разными значениями

Private Sub CommandButton1_Click()

дим знач1, знач2 As String

Для я = 1 К 100

знач1 = Worksheets ("Лист1"). Клетки (я, 1)

For j = 3 To 1000 
val2 = Worksheets("Sheet2").Cells(j, 2) 

    If (val1 = val2) Then 
    Worksheets("Sheet3").Cells(i, 1) = val2 

    ElseIf (val1 <> val2) Then 
    Worksheets("Sheet3").Cells(i, 2) = val2 

    End If 

    Next 

Следующая

End Sub

+0

Почему у вас есть вложенный цикл? – sam092

+0

Вложенный цикл for используется для определения примера ячейки для i = от 1 до 100 (A1: A100) – user2766881

+0

Что на самом деле происходит в вашем коде, так это то, что держит сравнение столбца B листа 2 с ячейками (1,1), клеток (2,1) .... к клеткам (100,1) листа 1 – sam092

ответ

0

Вы на самом деле означает ..... «для каждого значения в колонке B в листе 2, если найден в диапазоне A1: A100» ...

Наконец получил вас. Посмотрите, поможет ли это.

Sub test() 
    Dim val As Variant 
    Dim found As Integer, notFound As Integer 

    found = 0 
    notFound = 0 

    For j = 3 To 1000 
     val = Worksheets("Sheet2").Cells(j, 2).Value 
     If Not IsError(Application.Match(val, Worksheets("Sheet1").Range("A1:A100"), 0)) Then 
      'Comment this line if you don't want to paste the values that are the same 
      'Worksheets("Sheet3").Range("A1").Offset(found) = val 
      found = found + 1 
     Else 
      Worksheets("Sheet3").Range("B1").Offset(notFound) = val 
      notFound = notFound + 1 
     End If 
    Next 
End Sub 
+0

. Примерный лист 1 имеет значение от 1 до 100 по порядку, а лист 2, начиная со строки 3, имеет значение 22,3,101,489,6,7. .. и т. д. Значение, подобное 22,3,6 и 7, вставлено в ячейку 3 листа А, в которую я могу. Но такие значения, как 101,489 ... и т. Д., Которые не совпадают с листом 1, приклеиваются к листу 3 ячейки B. – user2766881

+0

Да, вместо того, чтобы иметь 998, я хочу, чтобы все значение, отличное от листа 1 для вставки в ячейку B листа 3 – user2766881

+0

Он отлично работает, но могу ли я его использовать таким образом, чтобы он искал только то значение, которое не то же самое? – user2766881

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