У меня есть следующие 2 таблицы (Коэффициенты & Ставки).vlookup искать значение во второй колонке
Table1
Таблица 2:
Я хочу сравнить ТрансИд из таблицы 2 с ТрансИд из таблицы 1 и получить несколько значений и вставьте же в цену колонке в таблице 2. У меня есть функция VLOOKUP в моем коде VBA, чтобы выполнить эту работу. Однако он выполняет итерацию через первый столбец (oddsId) и, следовательно, извлекает неправильную цену (надеюсь, что это ожидается, поскольку Vlookup всегда ищет левый самый столбец, если я не ошибаюсь).
Но я хочу сравнить TransId, чтобы получить информацию о цене.
Цена колонка использует формулу:
=getprice(BetsTable[[#This Row],[TransId]],BetsTable[[#This Row],[Option]])
Ниже приведен пример кода для GetPrice:
Function GetPrice(transId, opt)
Dim bettype As String
opt = UCase(opt)
bettype = Application.WorksheetFunction.VLookup(transId, Range("OddsTable5"), 3, False)
If (bettype = "FT.HDP" Or bettype = "HT.HDP") Then
If (opt = "H") Then
GetPrice = Application.WorksheetFunction.VLookup(transId, Range("OddsTable5"), 14, False)
ElseIf (opt = "A") Then
GetPrice = Application.WorksheetFunction.VLookup(transId, Range("OddsTable5"), 15, False)
Else
GetPrice = "Error"
End If
Я хочу, чтобы справиться с этой ситуацией в моем коде VBA (функция getPrice). Есть ли способ решить эту проблему?
Я пробовал этот код, но при этом та же ошибка. Я отредактировал свое сообщение, чтобы включить изображение листа для вашей справки. Указывает ли Cell (1,2) на столбец 2? – Shan
Да, да. Он не будет работать, если эта желтая полоса сверху - это объединенная ячейка, которая также включена в диапазон. 'OddsTable5' должен включать только таблицу, с или без заголовков. – GSerg