2014-01-08 5 views
0

При работе внутри листов мы можем гнездятся функции, например: = IFERROR (ВПР (С8, [Таблица 4], 1,0), «»)функция рабочего листа внутри функции рабочего листа

, но когда я попытался сделать это в макрос он выдает ошибку, Эта строка кода является один я пытался применить:

Application.WorksheetFunction.IfError ((Application.WorksheetFunction.VLookup(Range("C8"), [Table4], 1, 0), "") 

Итак, как гнездо функции рабочего листа в VBA?

+0

VB.NET не имеет ничего общего с VBA. – varocarbas

+0

Я не понимаю, сэр, вы имеете в виду, что мы не можем вложить функции листа? –

+0

Вы не в гневе Vlookup с iserror в VBA. См. Мои комментарии [ЗДЕСЬ] (http://stackoverflow.com/questions/20971739/excel-vba-vlookup-runtime-error-1004) –

ответ

1

Вы можете оставить метод .Worksheetfunction и использовать вместо:

v = Application.IfError(Application.VLookup(Range("C8"), [Table4], 1, 0), "") 

или:

With Application 
    v = .IfError(.VLookup(Range("C8"), [Table4], 1, 0), "") 
End With 

Использование Application без .Worksheetfunction возвращает вариант, который позволит на наличие ошибок или массивов в качестве аргументов и возвращаемых значений. Таким образом, вы также можете искать вектор значений, например: Range("C8:C10") вместо Range("C8").

+0

Действительно ??! thant's very beautiful mr @lori_m спасибо –

+2

Да, это, кажется, не широко известно или не документировано, но может быть очень полезным. (Просьба указать, отвечает ли это на вопрос - спасибо.) –

+0

спасибо за этот код У меня много проблем с помощью Vlookup VBA, я все еще участвую –

Смежные вопросы