.Find () в VBA возвращает пустую строку каждый раз, когда я открываю файл Excel - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть функция .Find() в VBA, в которой я использую мысленный макрос. Получается, что каждый раз, когда я открываю файл Excel и запускаю первый макрос, функция .Find() дает мне

Ошибка времени выполнения 91: переменная объекта или переменная блока не установлена ​​

Но странно то, что, если я сначала открою свой файл Excel и запустите другие макросы, то при запуске этой проблемы c Макрос это просто работает!

Это мой код:

Option Explicit

Sub findMyCode()

    Dim valore2 As String
    Dim cell2 As Range
    Dim cellAppoggio2 As Range
    Dim cellAppoggio3 As Range
    Dim valoreFinale As String
    Dim stringaConcatena As String
    Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("COMPOSIZIONE_AREE")

    Dim stringCodiceCella As String
    Dim stringDesignazioneCella As String

    valore2 = "T0" & Worksheets("CODICI").ComboBox3.Value

    Set cell2 = ws.Range("C3:EZ3").Find(valore2, Lookat:=xlPart) ' It just sets my **cell2** empty, meanwhile if I run the other Macro first, this like works!

    Set cellAppoggio2 = cell2.Offset(0, 1)

    ws.Range(cellAppoggio2.Address).EntireColumn.Insert

End sub()

Error

Picture

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

Заранее спасибо.

1 Ответ

0 голосов
/ 14 февраля 2020

Поскольку я выяснил, в чем проблема, я хотел бы опубликовать ее, поэтому, возможно, будет полезно и для будущих пользователей.

Эта строка кода была неправильной

Set cell2 = ws.Range("C3:EZ3").Find(valore2, Lookat:=xlPart))

И это правильный

Set cell2 = Worksheets("COMPOSIZIONE_AREE").Range("A3:GA3").Find(What:=Trim(valore2), LookIn:=xlValues, Lookat:=xlPart).

Все, что я сделал, это Trim() значение, поэтому я проверяю, что в фактическом значении нет пробелов, и LookIn:=xlValues, чтобы убедиться, что .Find() ищет значения, которые не являются формулами или другими вещами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...