Страницы: 1
RSS
ошибка 438 при использовании vlookup
 
ошибка: object doesn't support this property or method 438. возникает на строках c vlookup. замена application bна worksheetfunction не помогаетSub vip0()
Код
Dim ohtm As Object
Dim myShell As Object
    Dim myInternetExplorer As Object
    Set myShell = CreateObject(class:="Shell.Application")
       For Each myInternetExplorer In myShell.Windows
               If myInternetExplorer.Name = "Internet Explorer" Then
            Exit For
        End If
        Next myInternetExplorer
        If myInternetExplorer Is Nothing Then
        Exit Sub
    End If
Dim Rz, Nach, Okonch As String
Rz = myInternetExplorer.document.getelementbyid("mx1772")
Nach = Application.VLookup(Rz, Лист1!Range("B2:f90"), 5, False)
Okonch = Application.VLookup(Rz, Лист1!Range("B2:g90"), 6, False)
   myInternetExplorer.document.getelementbyid("mx1921").Value = "75"
   myInternetExplorer.document.getelementbyid("mx1932").Value = Nach
   myInternetExplorer.document.getelementbyid("mx1940").Value = Okonch
myInternetExplorer.document.getelementbyid("mx1963").Value = "Самосвал "
End Sub
 
А что это за конструкция такая - Лист1!Range(... ?
Или так - Лист1.Range(...
Или так - Sheets("Лист1").Range(
Или еще как-нибудь, но не так, как у Вас )))
Изменено: _Boroda_ - 22.09.2022 10:38:29
Скажи мне, кудесник, любимец ба’гов...
 
Цитата
написал:
А что это за конструкция такая - Лист1!Range(... ?
Или так - Лист1.Range(...
Или так - Sheets("Лист1").Range(
Или еще как-нибудь, но не так, как у Вас )))
я исправил, но теперь выдает ошибку "run-time error 13. type mismatch" из за этих же строк. изменение типа не даёт результат  
 
Цитата
olege1983 написал:
я исправил
на что именно? Попробуйте записать так:
Код
Application.VLookup(Rz, Range("Лист1!B2:f90"), 5, False)

но здесь может быть ошибка, если на момент выполнения кода активна не так книга, из которой надо брать диапазон и в ней нет листа с именем "Лист1". Поэтому лучше универсально:
Код
Application.VLookup(Rz, ThisWorkbook.Worksheets("Лист1").Range("B2:f90"), 5, False)

но учитывайте, что здесь обращение идет к Лист1 той книги, в которой записан макрос.
Ну и для полноты картины я бы порекомендовал ознакомиться со статьей: Как обратиться к диапазону из VBA
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх