Neue Tabelle ohne Formatierung erstellen

Neue Tabelle ohne Formatierung erstellen

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 Stylesund 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 nameist 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

verwandte Informationen