从仅具有标题的表中删除列

时间:2019-04-22 19:15:39

标签: excel vba excel-2016 excel-tables

我有一个表,该表具有许多列(包括自动过滤的标题),并且其中一些列仅包含标题,而没有其他数据。我想从命名表中删除这些列。

2 个答案:

答案 0 :(得分:1)

要删除列,请选择电子表格的整个列。然后用鼠标右键单击所选列,然后选择“删除”。

enter image description here

请注意,按键盘上的Delete键只会删除内容,而不会完全删除该列。

请注意,此方法会删除电子表格的整个列,因此表格下的数据也会受到影响。

答案 1 :(得分:0)

这是给您的代码,下次尝试编写代码

Public Sub teste()
    Call DeleteTableColumnNull("table")
End Sub
Public Sub DeleteTableColumnNull(ByVal TableObjectName As String)
    Dim table As ListObject
    Dim st As Worksheet
    Dim cols As Range
    Dim col As Range
    Dim rows As Range
    Dim row As Range



    For Each st In ThisWorkbook.Worksheets
        If tableExistInThisSheet(st, TableObjectName) Then
            Set table = st.ListObjects(TableObjectName)
            For Each col In table.Range.Columns
                If Application.WorksheetFunction.CountA(col) = 1 Then
                    col.Delete
                End If
            Next col
        End If
    Next

End Sub


Public Function tableExistInThisSheet(st As Worksheet, TableObjectName As String) As Boolean
On Error GoTo f
    Dim tb As ListObject
    Set tb = st.ListObjects(TableObjectName)
    tableExistInThisSheet = True
    Exit Function
f:

End Function