El mismo de las macros

Gracias por la anterior... Avancé un poco más, y lo que hice fue que directamente grabé con celdas relativas...
Usé la instrucción "texto a columnas" en la siguiente rutina:
Selection.Copy
ActiveCell.Offset(0, 6).range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveCell.Select
Application.CutCopyMode = False
Selection.TextToColumns Destination:=ActiveCell, DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 4), Array(10, 9), Array(16, 1), Array(30, 1), Array(42, 1))
Esta tiene un problema, y otra cosa que quiero agregarle:
1) Me entrega la respuesta 5 columnas más a la derecha de lo que se lo indico cuando grabo la macro.
2) Quiero que lo haga en toda la columna... Es decir, que siga hasta abajo,
gracias
Respuesta
1
Para dejar los datos en varias columnas a partir de la siguiente podemos cambiar:
ActiveCell.Offset(0, 6).Range("A1").Select
por:
ActiveCell.Offset(0, 1).Range("A1").Select
Para hacer lo segundo mejor reescribamos todo el código simplificándolo (la grabadora de macros tiende a sobrecargar el código con instrucciones redundantes)
Dim Celda As Range
For Each Celda In Selection
Celda.Copy
Celda.TextToColumns Destination:=Celda, DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 4), Array(10, 9), Array(16, 1), Array(30, 1), Array(42, 1))
Next
Tenés que seleccionar previamente todo el rango a procesar y luego ejecutar la macro.
Para evitar la pregunta de sebreescritura que aparece podemos poner antes del FOR
Application.DisplayAlerts = False
y no olvidar poner después del NEXT
Application.DisplayAlerts = True
Suerte
Foxeles

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas