2016-10-12 2 views
0

Я хочу использовать команду VLOOKUP и использовать диапазон, который находится на листе B (не в активированном A). Вызов нового рабочего листа дает мне ошибку «„ошибка выполнения 1004“активировать метод класса листа не удался»активировать метод класса рабочего листа не удалось - vlookup - vba

Public Sub Creation() 

    Worksheets("A").Activate 

    Randomize 
    Dim code As String 
    Dim hamid As Variant 
    Dim Lookup_Range As Range 
    Code = 100032 
    Set Lookup_Range = Worksheets("B").Range("O1:P8") 
    On Error Resume Next 
    hamid = Application.WorksheetFunction.VLookup(code, Lookup_Range, 2, False) 
    On Error GoTo 0 

End sub 

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

+0

Какая линия поднимает ошибку? –

+0

Эта строка Рабочие листы («A»). Активировать –

+0

Это действительно существует. Просто, когда я добавляю поиск, эта ошибка появляется. В противном случае остальная часть кода без поиска работает отлично. –

ответ

0

Ваш диапазон поиска, похоже, находится на рабочем листе B. Попробуйте активировать рабочий лист B перед использованием функции поиска. Я столкнулся с проблемами, пытаясь определить диапазоны на одном листе, а еще один активирован:

Public Sub Creation() 

Worksheets("A").Activate 

Randomize 
Dim code As String 
Dim hamid As Variant 
Dim Lookup_Range As Range 
code = 100032 
'Try here: 
Worksheets("B").Activate 
Set Lookup_Range = Worksheets("B").Range("O1:P8") 
On Error Resume Next 
'or here: 
Worksheets("B").Activate 
hamid = Application.WorksheetFunction.VLookup(code, Lookup_Range, 2, False) 
On Error GoTo 0 
'also made 'Code' in lookup function 'code'. 
End Sub 
+0

kpg Вы правы. Кроме того, после запуска кода мне нужно снова активировать рабочий лист «А», чтобы код оставил код. –

+0

Рад, что вы получили его на работу! – kpg987