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
    Then it can be done with the help of VBA Macro. Is it Ok?

  2. #2
    Member
    Join Date
    Jun 2012
    Posts
    39
    Rep Power
    0
    Ok. Thanks

    Regards,
    Safal

  3. #3
    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

  4. #4
    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

  5. #5
    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.

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

  7. #7
    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.

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
  •