+ Reply to Thread
Results 1 to 3 of 3

Optimizing the Vlookup code in VB. Repitive code with different referencing range.

Hybrid View

  1. #1
    Registered User
    Join Date
    07-20-2010
    Location
    us
    MS-Off Ver
    Excel 2003
    Posts
    8

    Optimizing the Vlookup code in VB. Repitive code with different referencing range.

    Hi All,

    I have been using the below code and it is working absolutely fine...

    But, I think the code is repetitive and is there any way to reduce this vlookup code by better referencing method... I tried diff methods but it is giving me errors... Dunno how can I make this code better and smaller. Please help.

    Can it be made to a single referencing code?
    The R18,R59,R87 and R110 has formula in that cell...so cannot use the same vlookup for those cells...

    With Range("R4:R17")
    .Value = WorksheetFunction.VLookup(Range("B4:B17"), Worksheets("Placeholder").Range("C2:F202"), 4, False)
    On Error Resume Next
    .SpecialCells(xlCellTypeConstants, xlErrors).Value = 0
    On Error GoTo 0
    End With
    
    
    With Range("R19:R58")
    .Value = WorksheetFunction.VLookup(Range("B19:B58"), Worksheets("Placeholder").Range("C2:F202"), 4, False)
    On Error Resume Next
    .SpecialCells(xlCellTypeConstants, xlErrors).Value = 0
    On Error GoTo 0
    End With
    
    
    With Range("R60:R86")
    .Value = WorksheetFunction.VLookup(Range("B60:B86"), Worksheets("Placeholder").Range("C2:F202"), 4, False)
    On Error Resume Next
    .SpecialCells(xlCellTypeConstants, xlErrors).Value = 0
    On Error GoTo 0
    End With
    
    
    With Range("R88:R109")
    .Value = WorksheetFunction.VLookup(Range("B88:B109"), Worksheets("Placeholder").Range("C2:F202"), 4, False)
    On Error Resume Next
    .SpecialCells(xlCellTypeConstants, xlErrors).Value = 0
    On Error GoTo 0
    End With

  2. #2
    Forum Moderator Leith Ross's Avatar
    Join Date
    01-15-2005
    Location
    San Francisco, Ca
    MS-Off Ver
    2000, 2003, & 2010
    Posts
    23,259

    Re: Optimizing the Vlookup code in VB. Repitive code with different referencing rang

    Hello raknahs,

    Try this version...
    Sub Macro1A()
    
      Dim arr As Variant
      Dim I As Integer
      
        arr = Array("R4:R17", "R19:R58", "R60:R86", "R88:R109")
        
          For I = 0 To UBound(arr)
            With Range(arr(I))
              .Value = WorksheetFunction.VLookup(Range(arr(I)).Offset(0, -16), Worksheets("Placeholder").Range("C2:F202"), 4, False)
              On Error Resume Next
                .SpecialCells(xlCellTypeConstants, xlErrors).Value = 0
              On Error GoTo 0
            End With
          Next I
          
    End Sub
    Sincerely,
    Leith Ross

    Remember To Do the Following....

    1. Use code tags. Place [CODE] before the first line of code and [/CODE] after the last line of code.
    2. Thank those who have helped you by clicking the Star below the post.
    3. Please mark your post [SOLVED] if it has been answered satisfactorily.


    Old Scottish Proverb...
    Luathaid gu deanamh maille! (Rushing causes delays!)

  3. #3
    Registered User
    Join Date
    07-20-2010
    Location
    us
    MS-Off Ver
    Excel 2003
    Posts
    8

    Re: Optimizing the Vlookup code in VB. Repitive code with different referencing rang

    I have a doubt in this code...

    How will it reference the Column B for the base of Vlookup value???

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1