数据过滤器无需过滤

时间:2015-04-28 23:20:14

标签: excel excel-2007 filtering

我已将查询导入Excel,非常直接的过程。我遇到的问题是,如果我单击标题行并说过滤器,如果我选择任何过滤器箭头,它们没有要过滤的值?我应该更改什么,以便我能够过滤列中的值?

第1行包含标题,第2行包含数据---但它们是数据行中返回的一些空白值(I.E.第2行及以后)

以下是显示问题的垃圾数据工作簿的链接。 enter link description here

1 个答案:

答案 0 :(得分:1)

数据作为ListObject表导入,并保存了一个用.ListObjects.ShowHeaders = False隐藏的标题。要解决此问题,必须公开标题行,然后将工作表的第1行转移到表的标题行中。

以下是一些快速代码,用于修复作为此情况的表格导入的数据。

Sub Repair_Import()
    Dim lo As ListObject
    With ActiveSheet
        For Each lo In .ListObjects
            If Not lo.ShowHeaders Then _
                lo.ShowHeaders = True
            If Not IsNumeric(.Cells(2, 1)) Then
                .Rows(1).Copy Destination:=.Cells(2, 1)
                .Rows(1).EntireRow.Delete
            End If
            If Not lo.ShowAutoFilterDropDown Then _
                lo.ShowAutoFilterDropDown = True
        Next lo
    End With
End Sub

选择A2(或实际列表对象表中的任何单元格),大致转换为:

  1. 表格工具►设计►表格样式选项►标题行
    Alt + J T O
  2. 复制第一行标题标签。
    Ctrl + Home 然后 Shift + Ctrl + 和< KBD>控制 + C
  3. 选择A2并粘贴。
    然后 Ctrl + V
  4. 选择第1行并删除,向上移动。
    Ctrl + Home 然后 Shift + 空格键,最后 Alt + 电子 d
  5. 表格工具►设计►表格样式选项►过滤器按钮
    Alt + J T B
  6. 恕我直言,原始数据导入会更好,并允许在用户端进行更多的个性化定制。 这取决于表格标题的左上角单元格是基于文本的,而该列是数字的,但个别情况应该很容易通过微小的编辑来适应。

    用隐藏的表标题行打开。

    Hidden header row in imported table

    开启数据►数据工具►过滤器显示没有可用于过滤的值。

    Hidden header row in imported table restricts filter options

    使用上下文菜单表格工具►设计►表格样式选项►显示标题行。

    Showing header row in imported table

    运行修复宏之后。

    Worksheet columns headers transferred to imported table

    值可用于过滤。

    Filter optionas available