Results 1 to 10 of 16

Thread: Vlookup Multiple Values By Adding Formula With Loop In VBA

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Senior Member LalitPandey87's Avatar
    Join Date
    Sep 2011
    Posts
    222
    Rep Power
    15
    Try this:

    Code:
    Sub LMP_Test()
    
        Dim rngData                     As Range
        Dim rngFirstValue               As Range
        Dim rngValue                    As Range
        Dim varResult()                 As Variant
        Dim strFindWhat                 As String
        Dim lngCount                    As Long
        
        Const strShtName                As String = "calcs"
        Const strDataStartCell          As String = "C4"
        Const strCriteriaCell           As String = "D11"
        Const strResultCell             As String = "C15"
        Const strBlankArrayVal          As String = "ArrayIsBlankWithNoDataFound"
        
        With Worksheets(strShtName)
            Set rngData = .Range(strDataStartCell).CurrentRegion
            strFindWhat = .Range(strCriteriaCell).Value
            With rngData.Resize(, 1)
                Set rngValue = .Find(strFindWhat, LookIn:=xlValues)
                If Not rngValue Is Nothing Then
                    Set rngFirstValue = rngValue
                    Set rngValue = Nothing
                    lngCount = 1
                    ReDim varResult(1 To lngCount)
                    varResult(LBound(varResult)) = strBlankArrayVal
                    Do
                        If rngValue Is Nothing Then
                            Set rngValue = .FindNext(rngFirstValue)
                            varResult(lngCount) = rngValue.Offset(, 1).Value
                        Else
                            lngCount = lngCount + 1
                            Set rngValue = .FindNext(rngValue)
                            ReDim Preserve varResult(1 To lngCount)
                            varResult(lngCount) = rngValue.Offset(, 1).Value
                        End If
                    Loop While Not rngValue Is Nothing And rngValue.Address <> rngFirstValue.Address
                End If
            End With
            If varResult(LBound(varResult)) <> strBlankArrayVal Then
                .Range(strResultCell).Resize(10000).ClearContents
                varResult = Application.Transpose(varResult)
                .Range(strResultCell).Resize(UBound(varResult), 1).Value = varResult
            End If
        End With
        
        Set rngData = Nothing
        Set rngFirstValue = Nothing
        Set rngValue = Nothing
        Erase varResult
        strFindWhat = vbNullString
        lngCount = Empty
    
    End Sub

  2. #2
    Member
    Join Date
    Jun 2012
    Posts
    39
    Rep Power
    0
    Is the code working with the sheet I have attached? Because it is showing Run time 9 error. Or do I have to change anything in the code?

    Thanx

  3. #3
    Senior Member LalitPandey87's Avatar
    Join Date
    Sep 2011
    Posts
    222
    Rep Power
    15
    It is working fine as i already tested it with your attached file.
    There are some constants there you can change it if required.

  4. #4
    Member
    Join Date
    Jun 2012
    Posts
    39
    Rep Power
    0
    Can you please attach the workbook you worked on? Thanks.

  5. #5
    Senior Member LalitPandey87's Avatar
    Join Date
    Sep 2011
    Posts
    222
    Rep Power
    15
    I tested it again on your attached file and it is working fine. Restart your system and then check it again may be it will work.

  6. #6
    Member
    Join Date
    Jun 2012
    Posts
    39
    Rep Power
    0
    Sorry for the trouble but again 'subscript out of range'.

  7. #7
    Member
    Join Date
    Jun 2012
    Posts
    39
    Rep Power
    0
    The problem was with the strfindwhat data type. I should have been date datatype. Anyways thanks.

Similar Threads

  1. Vlookup to Return Multiple Values
    By Admin in forum Download Center
    Replies: 9
    Last Post: 02-17-2017, 07:03 PM
  2. Loop to two columns and Concatenate values
    By ivandgreat in forum Excel Help
    Replies: 15
    Last Post: 04-14-2013, 08:20 PM
  3. Loop Through And Delete Multiple File Types In A Folder
    By Excel Fox in forum Excel and VBA Tips and Tricks
    Replies: 0
    Last Post: 03-30-2013, 04:47 PM
  4. Adding values less than zero
    By Howardc in forum Excel Help
    Replies: 3
    Last Post: 07-14-2012, 11:55 AM
  5. Loop and Check For Values In Entire Column in Excel
    By Jeff5019 in forum Excel Help
    Replies: 3
    Last Post: 05-01-2012, 10:34 PM

Posting Permissions

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