![Neue Tabelle ohne Formatierung erstellen](https://rvso.com/image/1585782/Neue%20Tabelle%20ohne%20Formatierung%20erstellen.png)
Ich habe ein Problem beim Erstellen einer Tabelle aus einer Datei, die ich vom Server/der Datenbank herunterlade. Es handelt sich um eine ältere .xls-Datei. In dieser Datei befindet sich eine Liste mit 67 Spalten und einer beliebigen Anzahl von Zeilen (je nachdem, wie viele Daten vorhanden sind). Wenn ich eine Liste auswähle und daraus eine Tabelle erstelle, wird eine Formatierung angewendet, die die Standardformatierung der Liste ändert. Ich gehe zu Disign > Table Styles
und klicke clear
, aber dadurch werden nicht alle angewendeten Formatierungen gelöscht; die neue Spaltenbreite bleibt erhalten.
Ich muss sicherstellen, dass sich die Spaltenbreite beim Erstellen der Tabelle nicht ändert oder dass andere Formatierungen angewendet werden. Das bringt meine Dateien wirklich durcheinander und macht sie für die spätere Verwendung unbrauchbar. Ich muss eine Tabelle ohne angewendete Formatierung erstellen. Ich verwende Excel 2016/1808/32bit unter Windows 7/64bit.
Danke xD
Antwort1
Mit diesem VBA (Makro) können Sie eine TABELLE ohne Format- und Filterschaltflächen erstellen.
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
Wie es funktioniert:
- Drücken SieALT+F11um den VB-Editor zu öffnen.
- KopierenundPastedieser Kodex alsStandardmodulmit dem Blatt.
- Führen Sie das Makro aus und wählen Sie den gewünschten Datenbereich aus, in den Sie konvertieren möchtenTISCH, sobaldEingabefelderscheint.
- Enden mitOK
- Sie finden Ausgewählter Datenbereich jetzt umgewandelt inTISCHohne Format (Überprüfen Sie dies mit dem Befehl „Tabellenentwurf“).
Achtung
Der obige Code Sheet & Table name
ist editierbar.
Antwort2
Ich habe Code hinzugefügt, um die Spaltenbreiten zu erfassen und sie nach dem Einfügen der Tabelle wiederherzustellen:
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