数据过滤器显示没有要过滤的内容
Posted
技术标签:
【中文标题】数据过滤器显示没有要过滤的内容【英文标题】:Data Filter Shows Nothing To Filter On 【发布时间】:2015-07-08 00:34:30 【问题描述】:我已将查询导入 Excel,过程非常简单。我遇到的问题是,如果我单击标题行并说过滤器,如果我选择任何过滤器箭头,它们就没有要过滤的值吗?我应该更改哪些内容才能过滤列中的值?
第 1 行包含标题,第 2 行包含数据 --- 但是它们是数据行中返回的一些空白值(即第 2 行及以后)
这里是显示问题的垃圾数据工作簿的链接。 enter link description here
【问题讨论】:
标题行下方是否有一个空白的隐藏行? 某些行将包含空白值。 所有内容实际上是否都填充到 A 列中,并且看起来只是由于文本溢出而填充了其余列?如果您选择 columnA 并运行 Text-to-Columns,您会看到其余数据吗? @Jeeped - 我已经在我的工作簿中添加了标签,并且验证的数据实际上存在于 A - V 列中(没有溢出) 好奇者和好奇者。这确实是非常奇怪的行为。无论如何,您是否可以将经过编辑的工作簿副本(仍然表现出流氓行为)发布到公共共享并在此处发布 URL 链接? 【参考方案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(或实际列表对象表中的任何单元格),大致翻译为:
-
表格工具 ► 设计 ► 表格样式选项 ► 标题行 Alt+JT,O
复制第一行标题标签。 Ctrl+Home 然后 Shift+Ctrl+→ 和 Ctrl+C.
选择 A2 并粘贴。 ↓ 然后 Ctrl+V
选择第 1 行并删除,向上移动。 Ctrl+Home 然后 Shift+空格键 最后是 Alt+E,D.
表格工具 ► 设计 ► 表格样式选项 ► 过滤器按钮 Alt+JT,B
恕我直言,原始数据导入会更好,并允许在用户端进行更多个性化定制。 这确实取决于表格标题的左上角单元格是基于文本的,并且该列是数字的,但个别情况应该很容易通过少量编辑来适应。
以隐藏的表格标题行打开。
打开数据 ► 数据工具 ► 过滤器显示没有可用于过滤的值。
使用上下文菜单表格工具 ► 设计 ► 表格样式选项 ► 显示标题行。
运行修复宏后。
值可用于过滤。
【讨论】:
@pnuts - 我曾假设 OP 想要他/她在第 1 行中的原始标题标签,而不是来自 Access 表的那些。 @pnuts - 我的头疼。我以为我就是这么做的。 @pnuts - 像这样的导入通常是自动和重复的。我想提供一些自动修复功能。我想我应该添加一些手动维修说明。 它可以工作,但我得到一个错误,对象不支持他的属性或方法,当它击中最后一个 If -- ShowAutoFilterDropDown 似乎是罪魁祸首。 @JorgeJones - ListObject 可以是表格以外的其他东西,您可能有一个不能拥有.ShowAutoFilterDropDown
属性的东西。由于导入会自动为表分配名称,因此我遍历了工作表上的所有 ListObjects。我很可能会进入一个不是桌子的地方。 TBH,无论如何,那条线有点绒毛。将其注释掉或完全删除。以上是关于数据过滤器显示没有要过滤的内容的主要内容,如果未能解决你的问题,请参考以下文章