Привет Я знаю, что есть много вопросов, заданных по той же теме, что и у меня здесь, они, похоже, не решают мою проблему. У меня есть задача сравнить два листа (A и B) на основе столбца D обоих листов, и я хочу найти и выделить строки в B, которые не существуют в A. Код выглядит так:Найти и выделить разницу
Dim i As Long
Dim data As Range
Dim ref As Range
Dim lastRow As Long
Worksheets("B").UsedRange
Set ref = Worksheets("test").Columns("D:D").Value
lastRow = Worksheets("B").UsedRange.Rows.Count
Application.ScreenUpdating = False
Application.DisplayAlerts = False
' check if data exist in both shts
For i = 10 To lastRow
Set data = Worksheets("B").Columns("D:D").Find(ref,LookIn:=xlValues, _
LookAt:=xlWhole)
If data Is Nothing Then
data.EntireRow.Interior.ColorIndex = 36
Exit For
Else
End If
Next
Теперь проблема в том, что строка, которая устанавливает ref, имеет ошибку требуемого объекта, а строки не подсвечиваются.
Функция экранирования выключена для более короткого времени выполнения, но для запуска моего кода все еще требуется некоторое время, это проблема с файлом или кодом?
Советы будут очень признательны.
UPDATE Задача решается с помощью следующего кода:
With Worksheets("test")
For i = 4 To lastRow
For j = 4 To lastnewRow
If Worksheets("test").Cells(i, 9) = Worksheets("B").Cells(j, 9) Then
Exit For
Else
If j = lastnewRow Then
Worksheets("test").Cells(i,9).EntireRow.Interior.ColorIndex = 36
End If
End If
Next
Next
End With
Вы пытаетесь получить доступ к атрибуту данных только в тех случаях, когда данные ничего не имеют смысла. –
Это потому, что я пытаюсь обратиться к строкам, которые существуют только в Листе B, является ли код неправильным? –
* Найти и выделить * звуки, такие как условное форматирование, могут быть подходящими. – pnuts