Results 1 to 8 of 8

Thread: Excel VBA Search For Find Duplicate Values In Two Lists

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:
    VarFinalArr is the Final result with duplicate value in both array

    Code:
    Option Explicit
    Option Compare Text
    
    
    Sub LMP_Test()
    
    
        Dim varFirstArr()                   As Variant
        Dim varSecondArr()                  As Variant
        Dim varFinalArr()                   As Variant
        Dim lngLoop                         As Long
        Dim lngIndex                        As Long
        Dim lngCount                        As Long
        
        With Worksheets("Sheet1")
            varFirstArr = .Range("A1:A5").Value
            varSecondArr = .Range("B1:B4").Value
        End With
        
        lngCount = 1
        For lngLoop = LBound(varFirstArr) To UBound(varFirstArr)
            lngIndex = 0
            lngIndex = GetArrayIndex(varFirstArr(lngLoop, 1), varSecondArr, False)
            If lngIndex > 0 Then
                lngIndex = 0
                ReDim Preserve varFinalArr(1 To lngCount)
                varFinalArr(lngCount) = varFirstArr(lngLoop, 1)
                lngCount = lngCount + 1
            End If
        Next lngLoop
        
        Erase varFirstArr
        Erase varSecondArr
        Erase varFinalArr
        lngLoop = Empty
        lngIndex = Empty
        lngCount = Empty
    
    
    End Sub
    
    
    Function GetArrayIndex(ByVal Val As Variant, ByVal varArr As Variant, _
                           Optional blnTranspose As Boolean = True, Optional lngColNo As Long = 1, _
                           Optional blnMatcase As Boolean = False) As Long
    
    
        Dim varDataArr              As Variant
        
        GetArrayIndex = 0
        On Error Resume Next
        With WorksheetFunction
            If blnTranspose Then
                varDataArr = .Index(Application.Transpose(varArr), lngColNo)
            Else
                varDataArr = varArr
            End If
            GetArrayIndex = .Match(Val, varDataArr, blnMatcase)
        End With
        On Error GoTo -1: On Error GoTo 0: Err.Clear
        
        varDataArr = Empty
    
    
    End Function

  2. #2
    Senior Member
    Join Date
    Oct 2011
    Posts
    135
    Rep Power
    15
    Hi,

    Thanks for the suggestions LalitPandey87

    I tested the code and adding the following line to insert the data sheet

    Code:
    Worksheets("Sheet1").Range("H1:H" & UBound(varFinalArr)) = Application.Transpose(varFinalArr)

  3. #3
    Senior Member LalitPandey87's Avatar
    Join Date
    Sep 2011
    Posts
    222
    Rep Power
    15
    you can also do it as below:
    Code:
    Worksheets("Sheet1").Range("H1").Resize(UBound(varFinalArr)).value = Application.Transpose(varFinalArr)

Similar Threads

  1. Replies: 6
    Last Post: 05-16-2013, 09:56 AM
  2. Unmerge Cells and Fill with Duplicate Values
    By princ_wns in forum Excel Help
    Replies: 3
    Last Post: 10-09-2012, 07:36 AM
  3. Replies: 2
    Last Post: 11-17-2011, 07:49 PM
  4. Find duplicate values
    By excel_learner in forum Excel Help
    Replies: 4
    Last Post: 10-24-2011, 12:10 PM
  5. Unique Large Values From Duplicate List
    By S M C in forum Excel and VBA Tips and Tricks
    Replies: 0
    Last Post: 10-04-2011, 02:17 AM

Posting Permissions

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