2017-01-15 7 views
0

私は以下のコードをvlookupで使用しています。シート "UG list" col Aの値がシート "Latency" B colにあるかどうかをチェックします。vlookupに基づく列の更新

現在、一致するものがある場合は、シート「UGリスト」自体に値を貼り付けています。しかし、代わりに、 "UG"というテキストが一致する場合は、Qの "Latency"シートで更新する必要があります。

これを実装するための提案はありますか?

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を行い、特定のシートのcolQを更新し、 "UGリスト"をソースとして更新することを意味しますか? –

+0

あなたのロジックは、あなたは値と行番号を持つ別々の辞書が必要になります。それぞれのシートに対してループを行い、すべての辞書をチェックし、もしそれらが存在すればcol Qを更新します。しかし、 VLOOKUPのような式を使って、辞書の代わりにこれを行います。 – cyboashu

関連する問題