Использование метода.find со скрытой книгой

Можно ли использовать .find способ поиска данных в скрытой книге?

У меня есть пользовательская форма, которая сохраняет данные в открытой (но скрытой) книге. Я хочу убедиться, что при вводе invoive в одном из текстовых полей он не был вставлен ранее.

Я думал об использовании .find метод, но это дает мне ошибку 91 объектную переменную или блок не установлен.

Я проверил эти переменные, и они установлены, но я пришел к выводу, что со скрытой книгой это может не сработать.

Ниже я вставил часть кода. Ошибка появляется в If skoroszyt...

If Lastrow <> 1 And nr_faktury <> "" Then



    If skoroszyt.Worksheets(nazwa_arkusza).Range(faktury_range).Find(nr_faktury) = True Then
        MsgBox ("Podany nr faktury został podany w fakturze nr" & _
        skoroszyt.Worksheets(nazwa_arkusza).Range(faktury_range).Find(nr_faktury).Address & vbNewLine & _
        "Faktura nie została zapisana")
        Exit Sub
    End If

End If

1 ответ

Решение

Я думаю, что вы имеете в виду это:

Dim rng As Range

If Lastrow <> 1 And nr_faktury <> "" Then
    Set rng = skoroszyt.Worksheets(nazwa_arkusza).Range(faktury_range).Find(What:=nr_faktury, _
                                                                            LookAt:=xlWhole, _
                                                                            LookIn:=xlValues, _
                                                                            MatchCase:=False)
    If Not rng Is Nothing Then
        MsgBox "Podany nr faktury zostal podany w fakturze nr" & _
            rng.Address & vbNewLine & "Faktura nie zostala zapisana"
        Exit Sub
    End If
End If

для частичного совпадения изменить LookAt:=xlWhole в LookAt:=xlPart

Другие вопросы по тегам