Solicitud de explicación detallada de la ejecución de la macro

Tu me ayudaste a hacer la siguiente macro:

    Set h1 = Sheets("Registro")
    Set h2 = Sheets("DiseñoIngreso")
    '
    u = h1.Range("B" & Rows.Count).End(xlUp).Row
    If u < 17 Then
        d = 18
        u = 18
    Else
        d = u + 4
    End If
    num = h1.Cells(u - 1, "B")
    num = Replace(num, "#", "")
    num = Replace(num, ".", "")
    num = Replace(num, " ", "")
    num = Val(num) + 1
    h2.Rows(2 & ":" & 4).Copy
    h1.Range("A" & d - 1).PasteSpecial Paste:=xlAll
    h1.Range("A" & d - 1).PasteSpecial Paste:=xlPasteColumnWidths
    h1.Range("B" & d - 1) = "# " & num & "."
End Sub

es excelente, pero me gustaria, no hay problema en que me la pudiera explicar paso por paso y así yo poder aprender un poco mas acerca de las funciones de vba. Me gustaria que me explicaras linea por linea lo que hace la macro, pues la verdad no entiendo nada.

1 respuesta

Respuesta
1

H o l a:

Sub macro()
'Por.Dante Amor
' con el apóstrofo se indica que lo que sigue en la línea es un comentario, es decir, no es código de la macro
'En programación se utilizan variables, y existen varios tipos de variables.
'
    Set h1 = Sheets("Registro")         'Se establece en la variable h1 el objeto de la hoja Registro
    Set h2 = Sheets("DiseñoIngreso")    'Se establece en la variable h1 el objeto de la hoja DiseñoIngreso
    'Se establecen en un objeto las hojas para no tener que repetir todo el nombre de la hoja en cada instrucción
    '
    u = h1.Range("B" & Rows.Count).End(xlUp).Row    'Se pone en la variable u el último número de fila
                                                    'condatos de la columna B
    If u < 17 Then  'si u es menor a 17 entonces
        d = 18      'la variable d = 18
        u = 18      'la variable u = 18
    Else            'si no es menor a 17
        d = u + 4   'la variable es igual a lo que tenga u + 4 filas
    End If
    '
    num = h1.Cells(u - 1, "B")      'se almacena en la variable u el número, por ejemplo: "# 3."
    num = Replace(num, "#", "")     'le quita el síbolo #, queda: " 3."
    num = Replace(num, ".", "")     'le quita el punto, queda " 3"
    num = Replace(num, " ", "")     'le quita el espacio, queda "3"
    num = Val(num) + 1              'le suma uno, queda 3 + 1 = 4
    h2.Rows(2 & ":" & 4).Copy                                       'copia las filas de la 2 a la de la hoja2
    h1.Range("A" & d - 1).PasteSpecial Paste:=xlAll                 'pega todo
    h1.Range("A" & d - 1).PasteSpecial Paste:=xlPasteColumnWidths   'pega el ancho de columnas
    h1.Range("B" & d - 1) = "# " & num & "."                        'le pone el formato, para quedar así "# 4."
End Sub

s a l u d o s

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas