下面我试图将公式放在最后一列的右边,从第2行开始。我知道For语句有效,以及搜索最后一列/行,因为我已经在将公式放在列中时的上一个宏。我唯一的问题是如何使VLookup公式正常工作?
结束目标: 1)Forumla在最后一个右边的列 2)Vlookup在名为“Lookup”的选项卡上的For语句中查找给定行的最后一列中的值 3)在此查找选项卡上,列A是找到值的位置,但我需要返回第二列值。
请在以“= 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 :(得分: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。