建立新表,不帶任何格式

建立新表,不帶任何格式

我在從伺服器/資料庫下載的檔案建立表格時遇到問題。這是一個較舊的 .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 & 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

相關內容