Я пытаюсь получить поле в выходном текстовом файле для обновления ссылающегося массива (Temp), где столбец B проверяет столбец D и обновляет данные в столбце D.
ШАГИ:
Создал массив (temp), затем с помощью Index Match установил столбец B в столбец D, чтобы заполнить столбец H
Range("H2:H17") = "=INDEX(D2:D17,MATCH(B2:B17,B2:B17,0))"
КОД ДЛЯ ТЯНУТЬ КОЛОННУ B НА ОСНОВЕ КОЛОННЫ D вМассив:
Dim DoEdit As String
Dim Source As String
Sheets("Temp").Select
Source = Range("B2").Value
EditLine = Line
DoEdit = Range("H2")
If DoEdit <> "" Then
Target = Application.WorksheetFunction.VLookup(Source,Range("B2:D20"), 3, False)
End If
Этот код работает только 1 для 1, если источник определен, поэтому выход «test1», поскольку для источника установлено значение B2.
Правильный вывод должен пройти черезсписок в столбце B: 96NW2702 является test1 0039430695 является test3 23832026 является test11
ВОПРОС:
Как получить «Target» для обновления текстового файла, выполнив VLookup, сравнив столбец B и столбецD .. в основном делать то, что делает index & match выше, просматривая список в столбце B в цикле? Я попытался установить источник в качестве диапазона для столбца B, но получил «объект требуется» и не может пройти через остальную часть кода.
Dim DoEdit As String
Dim Source As String
Sheets("Temp").Select
Set Source = ThisWorkbook.Worksheets("temp").Range("B2:B20")
EditLine = Line
DoEdit = Range("H2")
If DoEdit <> "" Then
Target = Application.WorksheetFunction.VLookup(Source,Range("B2:D20"), 3, False)
End If
Иначе, проще ли просто иметь цель, равную формуле index & match выше? При использовании следующего кода с индексом и соответствием я получаю «невозможно получить свойство соответствия класса функций рабочего листа»
Target = Application.WorksheetFunction.Index(Sheets("Temp").Range("D2:D11"), Application.WorksheetFunction.Match(2, Sheets("Temp").Range("B2:B11"), 0), 1)
Спасибо за любую помощь!