Problema vba con autofiltro de otro libro abierto

Tenngo un problema, al ejecutar un command button de un formulario, lo que quiero que haga y en las primeras lineas asi sucede, es que abra el libro de la ruta que se indica, como es un .txt se le pide abir en columnas de ancho fijo, copia y pega algunos datos, y despues al ejecutar el autofilter me marca error no se porque

ActiveWorkbook. Worksheets("Hoja01"). AutoFilter. Sort. SortFields. Clear

Esta linea esta mal supongo que por la variable "Hoja01". Llevo atorado 1 semana y no encuentro solucion ojala me puedan ayudar el codigo completo del command button es el siguiente

Private Sub CommandButton1_Click()

   Dim RutaArchivo1 As String

   RutaArchivo1 = TextBox1

   Original = ActiveWorkbook.Name

       Workbooks.OpenText Filename:=RutaArchivo1, _

       Origin:=xlWindows, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:= _

Array(Array(0, 1), Array(11, 1), Array(25, 1), Array(37, 1), Array(48, 1), Array(59, 1), _

Array(72, 1), Array(90, 1), Array(109, 1), Array(118, 1), Array(133, 1), Array(148, 1), _

       Array(163, 1), Array(181, 1)), TrailingMinusNumbers:=True

   Libro01 = ActiveWorkbook.Name

   Hoja01 = ActiveSheet.Name

   Range("A13").Select

   Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select

   Range("A13:A5000").Select

   Selection.Copy

   Range("B12").Select

   ActiveSheet.Paste

   Range("J13").Select

   Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select

   Range("J13:J5000").Select

   Application.CutCopyMode = False

   Selection.Copy

   Range("J12").Select

   ActiveSheet.Paste

   Columns("D:D").Select

   Selection.Delete Shift:=xlToLeft

   Rows("10:10").Select

   Range("A10:M5000").Select

   Selection.AutoFilter

   ActiveWorkbook.Worksheets("Hoja01").AutoFilter.Sort.SortFields.Clear

   ActiveWorkbook.Worksheets("Hoja01").AutoFilter.Sort.SortFields.Add Key:=Range( _

       "A10:A4999"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _

       xlSortNormal

   With ActiveWorkbook.Worksheets("Div0").AutoFilter.Sort

       .Header = xlYes

       .MatchCase = False

       .Orientation = xlTopToBottom

       .SortMethod = xlPinYin

       .Apply

   End With

   Unload UserForm1

End Sub

1 Respuesta

Respuesta
1

Hoja01 es una variable, no el nombre real de la hoja, por lo tanto va sin las comillas.

ActiveWorkbook. Worksheets(Hoja01). AutoFilter. Sort. SortFields. Clear

Así en cada caso. También vale para cuando necesites llamar al libro cuyo nombre guardaste en la variable 'Libro01'

Sdos y no olvides valorar las respuestas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas