2014-09-23 55 views
0

下面我試圖將公式放在最後一列的右側,從第2行開始。我知道For語句的作用,以及搜索最後一列/行,因爲我在以前的宏中使用這個時,將公式放在列中。我唯一的問題是如何使VLookup公式正常工作?VBA:使用vlookup公式將論壇欄放在列中

最終目標: 1)Forumla上列最後一個 2)VLOOKUP內的最後一列looksup值給定行上對於聲明一個名爲「查找」 3)在該選項卡上的權利查找選項卡中,A列是找到值的位置,但我需要返回第二列值。

請在零上與開始forumula「= IFERROR(...」我目前收到錯誤,「應用程序定義或對象定義的」錯誤。

EThree = Cells(Rows.Count, 4).End(xlUp).Row 
NumThree = Evaluate("=COUNTA(9:9)") 

For r = 2 To EThree 
    Cells(r, NumThree + 2).Formula = "=IFERROR(((Vlookup(" & Cells(r, 14).Value & ",Lookup!$A:$B,2,0)""))))" 

Next 
+0

解釋我認爲你的問題是這樣的:'細胞(R,14)。加ress(False,False)' – 2014-09-23 15:34:23

+0

嘗試使用'Cells(r,14).Address.Value'。 – 2014-09-23 15:35:23

+0

這並未解決問題。我仍然收到錯誤「應用程序定義或對象定義的錯誤」。我之前用同樣的方式使用了這個Address函數,但這是唯一的一次,我遇到了困難。我的感覺是這個問題存在於我如何打開Vlookup論壇和我的「&」的潛力。 – user3904713 2014-09-23 17:45:04

回答

1

您可以將公式。一氣呵成;
無需環路試試這個:

With Sheets("NameOfWorksheet") '~~> change to suit 
    '~~> first get the last row and column 
    Dim lrow As Long, lcol As Long 
    lrow = .Range("D" & .Rows.Count).End(xlUp).Row 
    lcol = .Cells(9, .Columns.Count).End(xlToLeft).Column 
    Dim rngToFillFormula As Range, mylookup As String 
    '~~> get the lookup value address 
    mylookup = .Cells(2, lcol).Address(False, False, xlA1) 
    '~~> set the range you need to fill your formula 
    Set rngToFillFormula = .Range(.Cells(2, lcol), Cells(lrow, lcol)).Offset(0, 1) 
    rngToFillFormula.Formula = "=IFERROR(VLOOKUP(" & mylookup & _ 
     ",Lookup!A:B,2,0),"""")" 
End With 

我們做什麼的評論HTH