Crear nueva tabla sin ningún formato

Crear nueva tabla sin ningún formato

Tengo un problema al crear una tabla a partir de un archivo que descargo del servidor/base de datos. Es un archivo .xls más antiguo. En ese archivo hay una lista con 67 columnas y un número arbitrario de filas (depende de la cantidad de datos que haya). Cuando selecciono una lista y creo una tabla a partir de ella, se aplica un formato que cambia el formato predeterminado de la lista. Voy Disign > Table Stylesy hago clic clearpero eso no borra todo el formato aplicado; el nuevo ancho de columna permanece.

Necesito que el ancho de la columna no cambie cuando creo la tabla o cualquier otro formato que pueda aplicarse. Esto realmente arruina mis archivos y los vuelve inútiles para su uso posterior. Necesito crear una tabla sin aplicar ningún formato. Estoy usando Excel 2016/1808/32 bits en Windows 7/64 bits.

Gracias xDD

Respuesta1

Este VBA (Macro) le ayudará a crear una TABLA sin ningún botón Formato ni Filtro.

Sub TableWithoutStryle()
Dim Trange As Range
Dim Ws As Worksheet

Set Ws = ThisWorkbook.Sheets("Sheet1")

Set Trange = Application.InputBox(Prompt:= _
                "Please select a range,,", _
                    Title:="Create Table", Type:=8)


Ws.ListObjects.Add(xlSrcRange, Trange, , xlYes).Name = "NewTable1"
   Ws.ListObjects("NewTable1").TableStyle = ""
    Ws.ListObjects("NewTable1").ShowAutoFilterDropDown = False
End Sub

Cómo funciona:

  • PrensaALT+F11para abrir el editor VB.
  • Copiar&Pegareste Código comoMódulo estándarcon la Hoja.
  • Ejecute la macro y seleccione el rango de datos requerido al que desea convertirMESA, tan prontoCuadro de ENTRADAaparece.
  • Terminar conDe acuerdo
  • Encuentra el rango de datos seleccionado ahora convertido enMESAsin ningún formato (verifique usando el comando Diseño de tabla).

NÓTESE BIEN

El código anterior Sheet & Table namees editable.

Respuesta2

Agregué código para capturar anchos de columnas y restaurarlos después de insertar la tabla:

Sub TableWithoutStryle()
Dim Trange As Range
Dim Ws As Worksheet
Dim ColWidth()

Set Ws = ActiveSheet

Set Trange = Selection

NumCols = Trange.Columns.Count

ReDim ColWidth(NumCols)

For i = 1 To NumCols
    ColWidth(i) = Trange(1, i).ColumnWidth
Next i

Ws.ListObjects.Add(xlSrcRange, Trange, , xlYes).Name = "NewTable1"
   Ws.ListObjects("NewTable1").TableStyle = ""
    Ws.ListObjects("NewTable1").ShowAutoFilterDropDown = False
    
For i = 1 To NumCols
    Trange(1, i).ColumnWidth = ColWidth(i)
Next i

End Sub

información relacionada