2017-01-15 3 views
0

У меня есть код ниже vlookup. Проверяет, имеются ли значения в листе «Список UG» col A, присутствует в листе «Latency» B col.Обновление столбца на основе vlookup

В настоящее время я получаю значения, вставленные в лист «Список UG», если есть совпадение. Но вместо этого мне нужно, чтобы текст «UG» обновлялся в col в Q в листе «Задержка», если есть совпадение.

Любые предложения по реализации этого?

Sub vlookup() 
Dim cl As Range, Dic As Object 
Set Dic = CreateObject("Scripting.Dictionary"): Dic.Comparemode = vbTextCompare 
With Sheets("Latency") 
For Each cl In .Range("B2:B" & .Cells(Rows.count, "C").End(xlUp).Row) 
    If Not Dic.exists(cl.Value) Then Dic.Add cl.Value, cl.Row 
Next cl 
End With 
With Sheets("UG list") 
For Each cl In .Range("A2:A" & .Cells(Rows.count, "A").End(xlUp).Row) 
    If Dic.exists(cl.Value) Then cl.Offset(, 1).Value = cl.Value 
Next cl 
End With 
Set Dic = Nothing 
End Sub 

ответ

0
With Sheets("UG list") 
    For Each cl In .Range("A2:A" & .Cells(Rows.Count, "A").End(xlUp).Row) 
     If Dic.exists(cl.Value) Then 
      Sheets("Latency").Cells(Dic(cl.Value), 17) = "UG" 
     End If 
    Next cl 
End With 

17 является колонка # для Q. Вы уже заготавливают номер строки в словаре так просто использовал его.

+0

Удивительно, что это работает отлично. Еще один маленький вопрос. Как я делаю то же самое для другого листа? Я имею в виду делать vlookup в других листах и ​​обновлять «UG» в том, что специфицирует листы colQ и сохраняет «список UG» в качестве источника? –

+0

, по вашей логике, вам понадобятся отдельные словари со значениями и номерами строк. Для каждого листа и затем зациклируйте список ug, как вы это делаете, проверьте все словари и, если они существуют, обновите col Q. Но если у вас много листов, рассмотрите используя такие формулы, как VLOOKUP, чтобы сделать это вместо словаря. – cyboashu

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