En este post les comparto un función de código en VB 6.0 para Macros de Excel.

Con esta función se facilita la labor de comprar un conjunto de datos con otro y recuperar algunas columnas del conjunto de datos con los cuales comparas, existe la posibilidad de realizar muchas mejoras a este código. De todos modos lo comparto posteriormente le realizare algunas correcciones o aumentare parámetros de entrada.

Public Function CompararRecuperar( _
    ByVal Data As Collection, _
    ByVal DataComparar As Collection, _
    ByVal Col As Integer, _
    ByVal ColComparar As Integer, _
    ByVal Columnas As Collection) As Collection
    
    Dim DataFinal As New Collection
    Dim Rows As New Collection
        
    Dim Cont As Integer
    Cont = 1
        
    For i = 1 To Data.Count
                
        For j = 1 To DataComparar.Count
        
            If (Data.Item(i).Item(Col) = DataComparar.Item(j).Item(ColComparar)) Then
                    
                Set Rows = New Collection
                
                For k = 1 To DataComparar.Count
                    If (Cont <= Columnas.Count) Then
                        If (k = Columnas.Item(Cont)) Then
                            
                            Rows.Add DataComparar.Item(j).Item(k)
                            Cont = Cont + 1
                            
                        End If
                    End If
                Next
                
                Cont = 1
                
                DataFinal.Add Rows
                
            End If
        
        Next
        
    Next
        
    
    Set CompararRecuperar = DataFinal
    
End Function

Saludos Cordiales.