Problema con nombre de archivo

Buenas tardes, tengo poca experiencia en macros, he creado una que necesito para acelerar un proceso en el trabajo. La macro es esta:
Sub macro1()
Rows("4:4").Select
Selection.Copy
Windows("Tabla 1.xls").Activate
Range("A2").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Libro1.xls").Activate
Application.CutCopyMode = False
Rows("8:8").Select
Selection.Copy
Windows("Tabla 2.xls").Activate
Range("A2").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Libro1.xls").Activate
Application.CutCopyMode = False
End Sub
Lo que tiene que hacer es lo siguiente: Primero copia del archivo en que se esta ejecutando la fila 4, en este caso el archivo es Libro1. Luego en el archivo Tabla 1 pega por valores esta información en la primer fila vacía, luego vuelve a libro1, copia la fila 8 y pega por valores en la tabla 2 en la primer fila vacía. Esta macro me esta funcionando bien mientras tenga el nombre del archivo como Libro1, mi consulta es la siguiente si yo creo 5 archivos distintos que contienen esta macro con el nombre por ejemplo de libro2, libro3, etc. Al ejecutarlos me dice que no encuentra libro1, necesito sabe como hacer para que la macro en vez de utilizar libro1 tome el nombre del archivo en donde se esta ejecutando la macro o sea libro2 o libro3. ¿Se entiende la consulta?
Desde ya Muchas Gracias, saludos.-

1 Respuesta

Respuesta
1
Puedes hacer estos cambios (en negrilla):
Sub macro1()
x = Thisworkbook.Name
Rows("4:4").Select
Selection.Copy
Windows("Tabla 1.xls").Activate
Range("A2").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows(x).Activate
Application.CutCopyMode = False
Rows("8:8").Select
Selection.Copy
Windows("Tabla 2.xls").Activate
Range("A2").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows(x).Activate
Application.CutCopyMode = False
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas