VBA - Vlookup formula - Codename of sheet for VLookup not working

Posted on 2011-03-17
Last Modified: 2012-05-11

How are you doing?

I have the following sub (See code and workbook below).

My issue is with line 14:
rng1.FormulaR1C1 = "=vlookup(RC[-1]," & CorrectedAgentIDName.[C1:C2].Address(External:=True, ReferenceStyle:=xlR1C1) & ",2,FALSE)"

Open in new window

This returns the following in Excel:

=VLOOKUP(A2,'Corrected ID-Name'!$C$1:$C$2,2,FALSE)

I want it to return:

=VLOOKUP(A2,'Corrected ID-Name'!A:B,2,FALSE)

So that it is looking up the value in A2 and finding that on sheet Corrected ID-Name (codename CorrectedAgentIDName) using column A:B, returning from column 2 (B) and False.

What do I need to change in the formula so that column A and B are used for the lookup table?

Thank you,
Sub VLookUpAutomation()

Dim cell As Range
Dim rng1, rng2 As Range

Application.ScreenUpdating = False

' Select Sheet or set for just active sheet or provide combo box?
Columns("B:B").Insert Shift:=xlToRight ' Insert column for vlookup formula to reside
Range("B1").Value = "VL" ' Indicate which column is vlookup, by putting in text VL

' Set range for vlookup formula and fill down in column B
Set rng1 = Range("C2", Range("C2").End(xlDown)).Offset(, -1)
    rng1.FormulaR1C1 = "=vlookup(RC[-1]," & CorrectedAgentIDName.[C1:C2].Address(External:=True, ReferenceStyle:=xlR1C1) & ",2,FALSE)"
' Test for Error (#N/A), when found, copy cell to left (, -1) and to right (, 1) then paste on sheet 2
' Re-name (Name) Sheet 2 so that user changes will not effect which page "Corrected Names are Stored"
On Error Resume Next
For Each cell In rng1.SpecialCells(xlCellTypeFormulas, xlErrors)
    If cell.Value = CVErr(xlErrNA) Then
        With CorrectedAgentIDName
            If IsError(Application.Match(cell.Offset(, -1), .Columns(1), 0)) Then
                cell.Offset(, -1).Copy .Range("A" & Rows.Count).End(xlUp)(2)
                cell.Offset(, 1).Copy .Range("B" & Rows.Count).End(xlUp)(2)
            End If
        End With
    End If
Next cell
On Error GoTo 0

' Set range to vlookup values from B2:Bn - Copy Range
' PasteSpecial Values into C2:Cn
Set rng2 = Range("B2", Range("B2").End(xlDown))
    Range("C2").PasteSpecial xlPasteValues

' Delete column B
Set rng2 = Range("B1", Range("B2").End(xlDown))

    Columns("A:B").AutoFit ' Fit Columns A and B to be visible
    Range("A2").Select ' Set cursor at Cell "A2"

Application.ScreenUpdating = True

End Sub

Open in new window

Question by:redrumkev
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 81

Accepted Solution

zorvek (Kevin Jones) earned 500 total points
ID: 35161237

   rng1.FormulaR1C1 = "=vlookup(RC[-1]," & CorrectedAgentIDName.[C1:C2].Address(External:=True, ReferenceStyle:=xlR1C1) & ",2,FALSE)"


   rng1.FormulaR1C1 = "=vlookup(RC[-1]," & CorrectedAgentIDName.[A:B].Address(External:=True, ReferenceStyle:=xlR1C1) & ",2,FALSE)"

LVL 23

Author Comment

ID: 35162067

Ding, Ding, Ding, we have a 500 point winner!

Thank you!

Featured Post

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Deploying a Microsoft Access application in a Citrix environment is not difficult but takes a few steps. However, Citrix system people are often of little help, as they typically know next to nothing about Access. The script provided here will take …
When you see single cell contains number and text, and you have to get any date out of it seems like cracking our heads.
This Micro Tutorial demonstrates how to create Excel charts: column, area, line, bar, and scatter charts. Formatting tips are provided as well.
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

756 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question