使用vba在vlookup中出错

时间:2016-11-07 13:37:01

标签: vba excel-vba vlookup excel

我收到以下代码的错误。错误显示在最后一行。这里TargetColNO是37

           Sub lookup1()
           '
           ' lookup1 Macro
           '

           Dim ColIndex As String
           Dim par As String
           Dim Lookup_Range As Range
           Dim sal As Integer
           ColIndex = "C" & TargetColNo
           'Range("O2").Select
           Cells(3, LastCol + 1).Select
           ColName = ColumnLetter(TargetColNo)
           par = "$" & ColName
           'Set Lookup_Range = Range("[NBH_MPP_20161104]NBH!$A:par")
           'ActiveCell.FormulaR1C1 = "=VLOOKUP(C1,[NBH_MPP_20161104.xls]NBH!C1:ColName,TargetColNo,0)"
           ActiveCell.FormulaR1C1 = "=VLOOKUP(A3,[NBH_MPP_20161104.xls]NBH!$A:par,TargetColNo,0)"

1 个答案:

答案 0 :(得分:0)

由于TargetColNopar是变量,请将它们置于双引号之外,因此请修改最后一行:

ActiveCell.FormulaR1C1 = "=VLOOKUP(A3,[NBH_MPP_20161104.xls]NBH!$A:par,TargetColNo,0)"

要:

ActiveCell.FormulaR1C1 = "=VLOOKUP(A3,[NBH_MPP_20161104.xls]NBH!$A:" & par & "," & TargetColNo & ",0)"

修改1 :最好避免使用Select,因为在您的公式中您没有使用R1C1结构,您可以替换最后几行用:

Cells(3, LastCol + 1).Formula = "=VLOOKUP(A3,[NBH_MPP_20161104.xls]NBH!$A:" & par & "," & TargetColNo & ",0)"