![Crear nueva tabla sin ningún formato](https://rvso.com/image/1585782/Crear%20nueva%20tabla%20sin%20ning%C3%BAn%20formato.png)
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 Styles
y hago clic clear
pero 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 name
es 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