Мне нужно проверить, находятся ли значения некоторых ячеек в столбце на другом листе в той же книге. Если он найден, то исходная ячейка выделяется зеленым цветом, в противном случае - красным. Вот мой код:
Option Explicit
Sub lookup()
Dim rng As Range
Dim i As Integer
Sheets("Zach Spares").Select
For i = 8 To 1035
' the next line is the one that gives me the error
Set rng = Sheets("SAP Spares").Range("G5:G6446").Find(Cells(i, 6).Value)
If Not rng Is Nothing Then
Cells(i, 6).Interior.ColorIndex = 4
ElseIf rng Is Nothing Then
Cells(i, 6).Interior.ColorIndex = 3
End If
Next
End Sub
Я продолжаю получать
Run-time Error '13': Type Mismatch.
в строке после комментарий. Этот код работал более чем с половиной данных, теперь он больше не работает. Я потратил часы, пытаясь выяснить, как исправить несоответствие.
Я попытался добавить
If IsError(Cells(i, 6).Value) Then
Cells(i, 6).Interior.ColorIndex = 6
Else
Set rng = Sheets("SAP Spares").Range("G5:G6446").Find(Cells(i, 6).Value)
End If
, чтобы отловить любые ячейки, которые могут содержать ошибку, но я все еще получаю несоответствие того же типа . Стоит отметить, что скрипт работает для столбцов 1-5, на 6 он начинает портить, и я не знаю почему. ![Error message](https://i.stack.imgur.com/gSZyS.png)
Мой код в целом, VBA показывает неправильную часть