Solved

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

Posted on 2011-03-17
2
711 Views
Last Modified: 2012-05-11
Experts,

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,
Kevin
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))
    rng2.Copy
    Range("C2").PasteSpecial xlPasteValues

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

    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

EE-VBA-VLookUp-CodeName-ver-3.xls
0
Comment
Question by:redrumkev
2 Comments
 
LVL 81

Accepted Solution

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

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

To:

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

Kevin
0
 
LVL 23

Author Comment

by:redrumkev
ID: 35162067
Kevin,

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

Thank you!
Kevin
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

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

This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
The viewer will learn how to use the =DISCRINV command to create a discrete random variable, use this command to model a set of probabilities and outcomes in a Monte Carlo simulation, and learn how to find the standard deviation of a set of probabil…
This Micro Tutorial demonstrates how to create Excel charts: column, area, line, bar, and scatter charts. Formatting tips are provided as well.

815 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now