我已将查询导入Excel,非常直接的过程。我遇到的问题是,如果我单击标题行并说过滤器,如果我选择任何过滤器箭头,它们没有要过滤的值?我应该更改什么,以便我能够过滤列中的值?
第1行包含标题,第2行包含数据---但它们是数据行中返回的一些空白值(I.E.第2行及以后)
以下是显示问题的垃圾数据工作簿的链接。 enter link description here
答案 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(或实际列表对象表中的任何单元格),大致转换为:
恕我直言,原始数据导入会更好,并允许在用户端进行更多的个性化定制。 这取决于表格标题的左上角单元格是基于文本的,而该列是数字的,但个别情况应该很容易通过微小的编辑来适应。
用隐藏的表标题行打开。
开启数据►数据工具►过滤器显示没有可用于过滤的值。
使用上下文菜单表格工具►设计►表格样式选项►显示标题行。
运行修复宏之后。
值可用于过滤。