Saltar al contenido

Explicar Macro

publicado

Me podrian definir que hace cada seccion de esta macro relacionada a este archivo:

 

Sub Copia()    

Dim C As Range        

Application.ScreenUpdating = False

       For Each C In Range("A2", Range("A" & Rows.Count).End(xlUp))

      Sheets("Molde").Copy , Sheets(Sheets.Count)

      With ActiveSheet

         .Range("A5") = C: .Name = Left(C.Offset(, 1), 31)

      End With    

Next C        

Application.ScreenUpdating = True

End Sub

 

 

Ejemplo Copiar Hoja.xlsm

Featured Replies

publicado

Con el valor de cada celda de la columna A de la hoja activa, crea una hoja a imagen de la hoja "Molde" con el nombre de las primeras 31 posiciones del valor de la celda.

El valor entero de la celda va a la celda C5 de la hoja nueva.

Por cierto, hay un error en la macro, déjala así:

Sub Copia()
Dim C As Range
'--
Application.ScreenUpdating = False
For Each C In Range("A2", Range("A" & Rows.Count).End(xlUp))
   Sheets("Molde").Copy , Sheets(Sheets.Count)
   With ActiveSheet
     .Range("A5") = C
     If Len(.Name) > 31 Then
        .Name = Left(C.Offset(, 1), 31)
     Else
        .Name = C
     End If
   End With
Next C
Application.ScreenUpdating = True
End Sub

 

publicado
El valor entero de la celda va a la celda C5 de la hoja nueva.

Corrijo, donde dije celda C5 debió decir celda A5?

publicado
  • Autor
Hace 11 horas, Antoni dijo:

El valor entero de la celda va a la celda C5 de la hoja nueva.

Corrijo, donde dije celda C5 debió decir celda A5?

Muchas gracias Antoni, por la explicación y la corrección, saludos!!

publicado

Hola @kuro.san

En el editor de VBA, existe una herramienta llamada ejecutar paso por paso, que lo que hace es ejecutar instrucción por instrucción de tal manera que pueda ver en tiempo real que es lo que hace cada instrucción. Te dejo un vídeo con mas detalle:

https://youtu.be/hAOP83W1AOE

Saludos!

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.