2013-09-29 1 views
0

У меня есть следующие 2 таблицы (Коэффициенты & Ставки).vlookup искать значение во второй колонке

Table1

Table1

Таблица 2:

Table 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). Есть ли способ решить эту проблему?

ответ

0

Рассчитать диапазон использования VLookup, удалив первый столбец.

dim odds_range as range 
with Range("OddsTable5") 
    set odds_range = Range(.Cells(1,2), .Cells(.Rows.Count, .Columns.Count)) 
end with 

... 

GetPrice = Application.WorksheetFunction.VLookup(transId, odds_range, 14, False) 
+0

Я пробовал этот код, но при этом та же ошибка. Я отредактировал свое сообщение, чтобы включить изображение листа для вашей справки. Указывает ли Cell (1,2) на столбец 2? – Shan

+0

Да, да. Он не будет работать, если эта желтая полоса сверху - это объединенная ячейка, которая также включена в диапазон. 'OddsTable5' должен включать только таблицу, с или без заголовков. – GSerg

 Смежные вопросы

  • Нет связанных вопросов^_^