Excel 删除表格格式中的排序图标

Excel 删除表格格式中的排序图标,excel,vba,Excel,Vba,我使用了“Format as Table(表格格式)”,每个列的顶部都有排序图标。如何从某些行中删除排序图标并保留其余行?您可以删除所有排序按钮(解决方法) 1-选择数据范围 2-格式如表所示 3-右键单击-->选择表格-->转换为范围 这将保留格式,但排序按钮将被删除 或者,如果要保留某些排序图标,则必须使用VBA 1-假设这是您的格式化表 2-编写此函数 Sub RemoveSortArrows() Application.ScreenUpdating = False

我使用了“Format as Table(表格格式)”,每个列的顶部都有排序图标。如何从某些行中删除排序图标并保留其余行?

您可以删除所有排序按钮(解决方法)

1-选择数据范围

2-格式如表所示

3-右键单击-->选择
表格
-->
转换为范围

这将保留格式,但排序按钮将被删除


或者,如果要保留某些排序图标,则必须使用VBA

1-假设这是您的格式化表

2-编写此函数

Sub RemoveSortArrows()
    Application.ScreenUpdating = False

    For Each col In Range("A1:J1")
        If Not (col.Column = 1 Or col.Column = 4) Then
            col.AutoFilter Field:=col.Column, Visibledropdown:=False
        End If
    Next

    Application.ScreenUpdating = True
End Sub
3-这应该是结果


您可以删除所有排序按钮(解决方法)

1-选择数据范围

2-格式如表所示

3-右键单击-->选择
表格
-->
转换为范围

这将保留格式,但排序按钮将被删除


或者,如果要保留某些排序图标,则必须使用VBA

1-假设这是您的格式化表

2-编写此函数

Sub RemoveSortArrows()
    Application.ScreenUpdating = False

    For Each col In Range("A1:J1")
        If Not (col.Column = 1 Or col.Column = 4) Then
            col.AutoFilter Field:=col.Column, Visibledropdown:=False
        End If
    Next

    Application.ScreenUpdating = True
End Sub
3-这应该是结果


您可以删除所有排序按钮(解决方法)

1-选择数据范围

2-格式如表所示

3-右键单击-->选择
表格
-->
转换为范围

这将保留格式,但排序按钮将被删除


或者,如果要保留某些排序图标,则必须使用VBA

1-假设这是您的格式化表

2-编写此函数

Sub RemoveSortArrows()
    Application.ScreenUpdating = False

    For Each col In Range("A1:J1")
        If Not (col.Column = 1 Or col.Column = 4) Then
            col.AutoFilter Field:=col.Column, Visibledropdown:=False
        End If
    Next

    Application.ScreenUpdating = True
End Sub
3-这应该是结果


您可以删除所有排序按钮(解决方法)

1-选择数据范围

2-格式如表所示

3-右键单击-->选择
表格
-->
转换为范围

这将保留格式,但排序按钮将被删除


或者,如果要保留某些排序图标,则必须使用VBA

1-假设这是您的格式化表

2-编写此函数

Sub RemoveSortArrows()
    Application.ScreenUpdating = False

    For Each col In Range("A1:J1")
        If Not (col.Column = 1 Or col.Column = 4) Then
            col.AutoFilter Field:=col.Column, Visibledropdown:=False
        End If
    Next

    Application.ScreenUpdating = True
End Sub
3-这应该是结果


我想在Pankaj的回答中补充一点。您可以使用

Dim myTable As ListObject

Set myTable = ActiveSheet.ListObjects([the name of your table goes in here])
并在循环签名的
中键入

For Each Cell In myTable.HeaderRowRange

我想在Pankaj的回答中补充一点。您可以使用

Dim myTable As ListObject

Set myTable = ActiveSheet.ListObjects([the name of your table goes in here])
并在
循环签名的
中键入

For Each Cell In myTable.HeaderRowRange

我想在Pankaj的回答中补充一点。您可以使用

Dim myTable As ListObject

Set myTable = ActiveSheet.ListObjects([the name of your table goes in here])
并在
循环签名的
中键入

For Each Cell In myTable.HeaderRowRange

我想在Pankaj的回答中补充一点。您可以使用

Dim myTable As ListObject

Set myTable = ActiveSheet.ListObjects([the name of your table goes in here])
并在
循环签名的
中键入

For Each Cell In myTable.HeaderRowRange

我希望我错了,但我认为这是不可能的。你的意思是“从某些列中删除排序图标”@Kapol-这是可能的。看看我的答案。我希望我错了,但我认为这是不可能的。你的意思是“从某些列中删除排序图标”@Kapol-这是可能的。看看我的答案。我希望我错了,但我认为这是不可能的。你的意思是“从某些列中删除排序图标”@Kapol-这是可能的。看看我的答案。我希望我错了,但我认为这是不可能的。你的意思是“从某些列中删除排序图标”@Kapol-这是可能的。请看我的答案。非VBA方式只保留格式,而丢失表格的所有其他功能,如自动公式填充。所以我认为这不是期望的结果。至于VBA解决方案,请向您推荐:)@是的。。。但希望同时提供这两个选项,因为用户可能只需要以特定样式格式化数据,而不真正关心排序(您可以使用
Data->sort
以任何方式对其进行排序。非VBA方式只保留格式设置,并丢失表的所有其他功能,如自动公式填充。因此,我认为这不是理想的结果。至于VBA解决方案,请向您推荐:)@是的……但是想要呈现这两个选项,因为用户可能只需要以特定的样式格式化数据,而不真正关心排序(您可以使用
Data->sort
以任何方式对其进行排序。非VBA方式只保留格式设置,并丢失表的所有其他功能,如自动公式填充。因此,我认为这不是理想的结果。至于VBA解决方案,请向您推荐:)@是的……但是想要呈现这两个选项,因为用户可能只需要以特定的样式格式化数据,而不真正关心排序(您可以使用
Data->sort
以任何方式对其进行排序。非VBA方式只保留格式设置,并丢失表的所有其他功能,如自动公式填充。因此,我认为这不是理想的结果。至于VBA解决方案,请向您推荐:)@是的……但希望同时提供这两个选项,因为用户可能只需要以特定样式格式化数据,而不真正关心排序(您可以使用
data->sort
对其进行排序)。