VBA – Diccionario.

Siempre que trabajemos con muchas (miles) filas es conveniente optimizar el código de nuestra macro. Una forma de agilizar la presentación de los datos es utilizando diccionarios. Para ello hay que incluir en nuestro proyecto el complemento: «Microsoft Scripting Runtime«. Un ejemplo sencillo de aplicación sería el siguiente:

VB
Private Sub CommandButton1_Click()

'instalar ([Herramientas]->[Referencias]: Microsoft Scripting Runtime)

Dim i As Integer

Dim Dicti As Object

Set Dicti = New Scripting.dictionary

    'tabla en rango "D10:E13"
    i = 10
    Do While Cells(i, 4).Value <> ""
        If Dicti.exists(Cells(i, 4).Value) Then
        Dicti(Cells(i, 4).Value) = Dicti(Cells(i, 4).Value) + Cells(i, 5).Value
        Else
        Dicti.Add Cells(i, 4).Value, Cells(i, 5).Value
        End If
    i = i + 1
    Loop
    
'recorremos otra tabla, del rango "H10:I13"
'si el valor de la celda (Col H) coincide con un elemento del diccionario
'pondrá el valor del diccionario en la columna I
Dim Fil As Integer
    
    For Fil = 10 To 13
        If Dicti.exists(Cells(Fil, 8).Value) Then
        Cells(Fil, 9).Value = Dicti(Cells(Fil, 8).Value)
        End If
    Next Fil

End Sub

Publicado

en

por

Etiquetas:

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *