Использование vba для vlookup из другого файла

Я пытаюсь написать код для использования vlookup, где ссылкой является другой файл. Справочная таблица от ячейки a2 до a300. Значение поиска — от ячейки G2 до конца столбца. vlookup нужно сделать в колонке AA.

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

Sub SBEPlannerAdder()
Dim rw As Long, x As Range
Dim extwbk As Workbook, twb As Workbook

Set twb = Workbooks.Open("C:\Users\OUROBOROS\Desktop\30-5-19\vba\VBA\Gents_SW_May'19.xlsb")
Set extwbk = Workbooks.Open("C:\Users\OUROBOROS\Desktop\30-5-19\vba\VBA\1st phase stores.xlsx")
Set x = extwbk.Worksheets("Sheet1").Range("A1:C300")


    For rw = 2 To twb.Sheets("Sheet1").Cells(Rows.Count, 25).End(xlUp).Row
       twb.Sheets("Sheet1").Cells(rw, 2) = Application.VLookup(twb.Sheets("Sheet1").Cells(rw, 1).Value2, x, 2, False)
    Next rw

extwbk.Close savechanges:=False

End Sub

введите описание изображения здесь

введите описание изображения здесь

Поскольку ваша справочная таблица состоит только из одного столбца, вы просто проверяете наличие значений в G в таблице?

SJR 12.06.2019 13:36

да, так что я знаю, какие клетки рассматривать

Karthik Apadodharanan 12.06.2019 13:39
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
2
169
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуй это. Вам нужно будет настроить имена книг и листов в соответствии с вашими потребностями.

Не уверен, какой вывод вы ожидаете, я только что добавил текстовое сообщение в ячейки вывода в AA.

Sub y()

Dim rw As Long, x As Range, v As Variant
Dim extwbk As Workbook, twb As Workbook

Set twb = ThisWorkbook 'file with lookup values (containing code)
Set extwbk = Workbooks.Open("C:\Users\OUROBOROS\Desktop\30-5-19\vba\VBA\1st phase stores.xlsx") 'file with reference table
Set x = extwbk.Worksheets("Sheet1").Range("A2:A300")

For rw = 2 To twb.Sheets("Sheet1").Cells(Rows.Count, "G").End(xlUp).Row
    v = Application.Match(twb.Sheets("Sheet1").Cells(rw, "G").Value2, x, 0)
    If IsNumeric(v) Then
        twb.Sheets("Sheet1").Cells(rw, "AA").Value = "Found" 'G is in the table
    Else
        twb.Sheets("Sheet1").Cells(rw, "AA").Value = "Not found" ''G is NOT in the table
    End If
Next rw

extwbk.Close savechanges:=False

End Sub

Если файл, содержащий значения поиска, содержит код, вы можете просто использовать Set twb =thisworkbook.

SJR 12.06.2019 13:55

Он отлично работает, есть ли способ избавиться от пути к файлу для текущей книги?

Karthik Apadodharanan 12.06.2019 13:58

Спасибо большое, не заметил комментарий

Karthik Apadodharanan 12.06.2019 13:58

Проблема с кодом, он отображается не во всех ячейках

Karthik Apadodharanan 12.06.2019 15:44

Нужно больше информации. Если вы повторно запускаете код, вам следует сначала очистить выходные ячейки.

SJR 12.06.2019 16:17

я их каждый раз сбрасываю, может быть проблема с функцией совпадения

Karthik Apadodharanan 12.06.2019 16:24

Значения в G не должны быть найдены в таблице. Ничего не зная о ваших данных, трудно предоставить более подробную информацию, но проверьте наличие начальных или конечных пробелов.

SJR 12.06.2019 16:26

Могу ли я как-нибудь прикрепить сюда листы Excel?

Karthik Apadodharanan 12.06.2019 16:27

Не файлы, но вы можете добавить скриншоты к своему вопросу.

SJR 12.06.2019 16:30

прикрепил 2 скрина, спасибо всем за помощь

Karthik Apadodharanan 12.06.2019 16:37

Боюсь, я ничего не могу по ним сказать - попробуйте выполнить код с помощью F8, чтобы увидеть, что происходит, и добавьте точку останова в разделе не найдено. Где-то в строке он не находит значения в таблице - проверьте также свои ссылки.

SJR 12.06.2019 16:42

Другие вопросы по теме