[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 401
  • Last Modified:

Automating VLookup

Hello,

I was able to record a macro which used a vlookup.  The problem I am facing is that the range in the vlookup will change from day to day.  How do I set and update the range for the vlookup formula when the macro is run? Please let me know if any information is needed. Thanks for the help.

0
jvera524
Asked:
jvera524
  • 3
  • 2
1 Solution
 
SiddharthRoutCommented:
Will the number of rows increase or the columns?

Sid
0
 
jvera524Author Commented:
number of rows
0
 
SiddharthRoutCommented:
Then it shouldn't be a problem.

Two ways to achieve what you want.

Here is an example

Let' s say the current VBA Code is

Sub Sample()
    Range("F2").Formula = "=Vlookup(C1,$C$1:$E$10,3,0)"
End Sub

Open in new window


You can change that to

1) Amend the formula to take the entire column into account. So the above becomes

Sub Sample()
    Range("F2").Formula = "=Vlookup(C1,C:E,3,0)"
End Sub

Open in new window


2) Or this to take realistic rows into account.

Sub Sample()
    Dim LastRow As Long
    LastRow = Sheets("Sheet1").Range("C" & Rows.Count).End(xlUp).Row
    Range("F2").Formula = "=Vlookup(C1,$C$1:$E$" & LastRow & ",3,0)"
End Sub

Open in new window


Sid

0
 
jvera524Author Commented:
Below is some code.  I am trying use what you gave above in a for loop. It gives a complie error on the bolded line Thank you for the help.

    Dim cls As Range
    Dim cl As Integer
    Dim LastRow As Long
   
    Sheets("Data").Select
    Range("A2").Select
    Set cls = Cells(Rows.Count, "A").End(xlUp)
    LastRow = Sheets("Yesterday").Range("BM" & Rows.Count).End(xlUp).Row
       
    For cl = 2 To cls.Row + 1
       Cells(cl, "BP").Formula "=Vlookup(Cells(cl,"BM"),Sheets("Yesterday").Range($BM$2:$BM$" &     LastRow & ",1,False)"
    Next
0
 
SiddharthRoutCommented:
Is this what you are trying to do?

Sub Sample()
    Dim cls As Long
    Dim cl As Long, LastRow As Long
   
    cls = Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row
    
    LastRow = Sheets("Yesterday").Range("BM" & Rows.Count).End(xlUp).Row
    
    For cl = 2 To cls
        '~~> I am assuming that you want to put the formula in Cell BP
        '~~> Of Sheet Data
        Sheets("Data").Range("BP" & cl).Formula = _
        "=Vlookup(BM" & cl & ",Yesterday!$BM$2:$BM$" & LastRow & ",1,False)"
    Next
End Sub

Open in new window


Sid
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now