VBA надстройка Vlookup ThisWorkbook.Range - PullRequest
1 голос
/ 07 ноября 2019

Я пытаюсь создать надстройку с помощью VLOOKUP из диапазона на листе надстроек. Это слишком долго для дела (более 3000 строк), и я не хочу, чтобы пользователь сохранял этот файл.

Function WSort(strng)
Dim DivR, wb1 As Workbook, ws1 As Worksheet


    Set wb1 = ThisWorkbook
    Set ws1 = wb1.Sheets("HEA")
    strng = Left(strng, 5)

    WSort = Application.WorksheetFunction.VLookup(RetStr, ws1.Range("C2:D4000"), 2, False)
End Function

Я пытался написать это несколькими способами, и я продолжаю сталкиваться с проблемой, которую я не могу надежно сослаться на вкладку HEA. Я пытался использовать Sheet3 и Sheets (4).

Ответы [ 2 ]

1 голос
/ 07 ноября 2019

Попробуйте:

Function WSort(strng)
    Dim m
    m = Application.VLookup(strng, _
           ThisWorkbook.Sheets("HEA").Range("C2:D4000"), 2, False)
    WSort = IIf(IsError(m), "NoMatch", m)
End Function

Если вы все еще получаете сообщение об ошибке, попробуйте вызвать функцию из VBA, чтобы вы могли отладить.

0 голосов
/ 07 ноября 2019

Когда я был сохранен как надстройка для тестирования, он изменил ThisWorkbook на ThisWorkbook1. Обновил линию и все заработало отлично!

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