Точнее будет ругаться не в этом месте кода, а там, где Вы захотите использовать переменную Cell, если ей не будет присвоино значение Обрабатывается так
Код
With Sheets("БД-типы")
Set Cell = .Range("B2:B1001").Find(What:=.Range("A5").Value, LookIn:=xlValues)
End With
If Not Cell Is Nothing Then
'какой то код типа
MsgBox Cell.Address
End If
Согласие есть продукт при полном непротивлении сторон
Sanja,ясно, все равно не использую ее потом. Но ошибка не пропала, runtime error 13 - type mismatch Весь код такой:
Код
'Добавление типа
Public Sub Add_type()
Dim Cell As Range
If ActiveSheet.Range("AE5").Value <> "" And ActiveSheet.Range("AE5").Value <> "Введите название типа..." Then
With Sheets("БД-типы")
Set Cell = .Range("B2:B10001").Find(What:=.Range("AE5").Value, After:=.Range("B1"), LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
End With
If Cell Is Nothing Then
'найдено
MsgBox "Совпадение"
ActiveSheet.Range("AE5").Value = Empty
Else
'не найдено
lLastRow = Sheets("БД-типы").Cells(Rows.Count, 2).End(xlUp).Row
Sheets("БД-типы").Cells(lLastRow + 1, 2).Value = Range("AE5").Value
ActiveSheet.Range("AE5").Value = Empty
End If
Else
ActiveSheet.Range("AE5").Value = Empty
End If
End Sub
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Ошибка пропала, но почему то все равно выполняется условие "Не найдено"
Код
Public Sub Add_type()
Dim Cell As Range
If ActiveSheet.Range("AE5").Value <> "" And ActiveSheet.Range("AE5").Value <> "Введите название типа..." Then
With Sheets("БД-типы")
Set Cell = .Range("B2:B10001").Find(What:=.Range("AE5").Value, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
End With
If Not Cell Is Nothing Then
'найдено
MsgBox "Совпадение"
ActiveSheet.Range("AE5").Value = Empty
Else
'не найдено
lLastRow = Sheets("БД-типы").Cells(Rows.Count, 2).End(xlUp).Row
Sheets("БД-типы").Cells(lLastRow + 1, 2).Value = Range("AE5").Value
ActiveSheet.Range("AE5").Value = Empty
End If
Else
ActiveSheet.Range("AE5").Value = Empty
End If
End Sub
по моему пора файл с кодом показывать. раз выполняется значит найдено. или код не точно написан. мы не знаем ваших условий чтобы проверить алгоритм кода.