Создание цикла VBA FOR с использованием функции vlookup в Excel - PullRequest
0 голосов
/ 07 февраля 2019

Я бы хотел использовать функцию Vlookup 47 раз, чтобы получить значение для всех данных.Я называю таблицу, которую я заполняю, «Таблица 1».«Таблица 1 начинается с E3. Я хотел бы использовать vlookup, чтобы найти значение для ячейки E3 и заполнить его в F3.

Я называю таблицу, из которой я возвращаю значение, с помощью Vlookup« Table2 ».« Таблица2 находится на листе «Имя CC» и имеет два столбца A и B.

Я пробовал два цикла FOR.Один цикл FOR для функции Vlookup должен повторяться 47 раз.Второй цикл FOR для имени функции vlookup "ccName", чтобы использовать функцию для заполнения значения в "Таблице 1" в течение 43 раз, но я получаю сообщение об ошибке каждый раз, когда внедряю код.

Sub GLcreation()

For n = 3 To 50
For c = 3 To 50

ccName(c) = WorksheetFunction.Vlookup(Range("E" & n), Worksheets("CC Name").Range("A:B"), 2, 0)

Range("F" & n) = ccName(c)

Next c
Next n

End Sub

Если вы можете показать мне, как правильно написать код для Loop, я ценю вашу помощь.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Как только произойдет несоответствие, код потерпит неудачу.Перед поиском безопаснее проверить на совпадение.Вот лучшее решение:

Sub GLcreation()

Dim n As Integer
Dim wf As WorksheetFunction
Set wf = WorksheetFunction

For n = 3 To 50
    If wf.CountIf(Worksheets("CC Name").Range("A:A"), Range("E" & n).Value) > 0 Then
        Range("F" & n).Value = wf.Index(Worksheets("CC Name").Range("B:B"), wf.Match(Range("E" & n).Value, Worksheets("CC Name").Range("A:A"), 0))
    End If
Next n

End Sub
0 голосов
/ 07 февраля 2019

Избавившись от c Loop, правильный код будет:

Range("F" & n) = WorksheetFunction.Vlookup(Range("E" & n), Worksheets("CC Name").Range("A:B"), 2, 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...