创建不带任何格式的新表格

创建不带任何格式的新表格

我在从服务器/数据库下载的文件创建表格时遇到问题。这是一个较旧的 .xls 文件。该文件中有一个包含 67 列和任意行数的列表(取决于数据量)。当我选择列表并从中创建表格时,会应用格式,这会更改列表的默认格式。我转到Disign > Table Styles并单击clear,但这不会清除所有应用的格式;新的列宽保持不变。

我需要创建表格时列宽不变,或者应用任何其他格式。这真的弄乱了我的文件,使它们无法用于以后使用。我需要创建不应用任何格式的表格。我在 Windows 7/64 位上使用 Excel 2016/1808/32 位。

谢谢 xD

答案1

此 VBA(宏)将帮助您创建无需任何格式和过滤器按钮的表格。

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

怎么运行的:

  • ALT+F11打开 VB 编辑器。
  • 复制&粘贴本守则标准模块使用 Sheet。
  • 运行宏并选择要转换为的所需数据范围桌子, 尽快输入框出現。
  • 完成好的
  • 您会发现所选数据范围现已转换为桌子没有任何格式,(使用表设计命令检查)。

注意:

上面的代码Sheet & Table name是可编辑的。

答案2

我添加了代码来捕获列宽并在插入表格后恢复它们:

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

相关内容