2016-10-03 209 views
0

我是VBA的新手,我試圖將我寫到VBA代碼中的查找公式轉換爲循環遍歷列中的每個單元格。 vlookup是一個if語句的一部分,可以自行工作。我面臨的問題是我不知道如何告訴vlookup函數尋找數據的單元,以便它可以推廣到整個循環。其計算公式如下Excel VBA:循環查找

= IF(K114 <> 「」,K114,VLOOKUP($ A114,補償$ A $ 1:$ d $ 136,2,FALSE))

下面是我對VBA

Sub Ranking() 

Dim cell As Range, rng As Range 
Set rng = Range("K2:K120") 

For Each cell In rng 
    If cell.Value <> "" Then 
     cell.Offset(0, 1).Value = cell.Value 
    Else: cell.Offset(0, 1).Value = WorksheetFunction.VLookup(HELP HERE,ThisWorkbook.Sheets(2).Range("A1:D136"), 2, 0) 
    End If 
Next 
End Sub 

我不知道要放什麼東西,我把「在這裏幫助」來告訴它指的是它看起來在同一行的A列中文字。我也不知道這正確的方式來回應這種情況?任何建議,非常感謝。非常感謝!

+0

您需要這個vba代碼或可以工作表公式的工作? –

+0

不幸的是,它是一個更大的VBA代碼的一部分,不能成爲一個公式。我只是先寫公式來指導我的思維過程。 – Ashley

回答

1

對於「幫助這裏」,看看你的配方,你換了K114的A114。這意味着您需要從K列中的當前單元格返回到A列。可以使用當前單元格的偏移量向左移動10列以獲得A列。

Sub Ranking() 

Dim cell As Range, rng As Range 
Set rng = Range("K2:K120") 

For Each cell In rng 
    If cell.Value <> "" Then 
     cell.Offset(0, 1).Value = cell.Value 
    Else 
     cell.Offset(0, 1).Value = WorksheetFunction.VLookup(cell.Offset(0, -10).Value, ThisWorkbook.Sheets(2).Range("A1:D136"), 2, 0) 
    End If 
Next 
End Sub 
+0

工作,非常感謝你Teylyn! – Ashley