- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在报告中向用户显示过滤器列。 Excel 给出了一个不同的图标,但没有。列最好用另一种颜色(如蓝色)为列着色。
我在 Is there a way to see which filters are active in Excel, other than just the funnel icons? 找到了代码
Sub test()
Call markFilter(ActiveSheet)
End Sub
Sub markFilter(wks As Worksheet)
Dim lFilCol As Long
With wks
If .AutoFilterMode Then
For lFilCol = 1 To .AutoFilter.Filters.Count
'/ If filter is applied then mark the header as bold and font color as red
If .AutoFilter.Filters(lFilCol).On Then
.AutoFilter.Range.Columns(lFilCol).Cells(1, 1).Font.Color = vbRed
.AutoFilter.Range.Columns(lFilCol).Cells(1, 1).Font.Bold = True
Else
'/ No Filter. Column header font normal and black.
.AutoFilter.Range.Columns(lFilCol).Cells(1, 1).Font.Color = vbBlack
.AutoFilter.Range.Columns(lFilCol).Cells(1, 1).Font.Bold = False
End If
Next
Else
'/ No Filter at all. Column header font normal and black.
.UsedRange.Rows(1).Font.Color = vbBlack
.UsedRange.Rows(1).Font.Bold = False
End If
End With
End Sub
最佳答案
我将使用您在帖子中提到的答案中使用的相同示例。我这样回答。 :)
excel中没有过滤器更改事件。我将使用的一种解决方法是捕获工作表的计算方法或更好的工作簿。
因此,在带有过滤器的工作表中添加如下虚拟公式:=SUBTOTAL(3,Sheet2!$A$1:$A$100)
这仅计算可见单元格。但这取决于你。随意使用任何响应过滤器变化的公式。
之后,转到工作簿的代码并添加以下内容:
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Call markFilter(Sh)
MsgBox "Filter changed"
End Sub
markFilter
来自
answer你提到的。
关于vba - 可以将 AutoFilter 作为事件捕获吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39260841/
我有一些代码可以根据第一个条件自动过滤工作表,如果没有返回条件,则根据第二个条件自动过滤。 条件语句是我需要帮助的地方,即使第二行的第一个单元格中有数据,它也会不断出错(我显然不想包含标题): Wit
我想刷新我的数据透视表,因为它正在查看的范围内的数据确实发生了变化。然后我需要能够从过滤器中取消选择任何空白。 我下面的代码就是这样做的,但是如果不存在空白(以 "" 或 (blank) 的形式),那
我正在尝试在报告中向用户显示过滤器列。 Excel 给出了一个不同的图标,但没有。列最好用另一种颜色(如蓝色)为列着色。 我在 Is there a way to see which filters
我正在将 VBA AutoFilter 应用于 Excel 表中的某些结果。它似乎编译正确,但是当我检查结果时,自动筛选器隐藏了匹配和不匹配我应用的条件的行。 如果我手动选择应用的自动过滤器,我会看到
我想过滤具有特定值的列。 问题陈述: Excel 如下所示,工作表名称为“Current_Data”。 我需要过滤值为“VP”的第三列并使用自动过滤器获取输出。 代码片段: Sub Filter_CP
到目前为止,我一直在使用 AutoFilter() 方法,没有任何问题。但我无法标记或获取过滤行的范围,无法对它们进行计数/复制/删除。 我看过很多关于 VBA 问题的帖子,但没有关于 C# 的帖子。
我有这个简单的可编辑 JComboBox,它在您键入时过滤可用的选项。除了一些奇怪的情况外,它几乎可以工作,例如,当您键入“Sass”时,它会将可用选项过滤为单个“Sassi di Matera”,但
我有一个包含员工列表的电子表格。我想运行一个宏,当在输入框中输入员工编号时,该宏将过滤特定员工。但是,如果该号码不存在,我希望显示一条错误消息,让您可以选择重试。 我的尝试如下: Option Exp
我试图在过滤列 A 之后获取列 B 中的唯一名称,然后将它们粘贴到列 C 中,如下所示: Range("A1:B1").Select Selection.AutoFilter
我一直试图理解一个同事在网上某处找到的宏,用于根据选定的标准过滤一组数据。部分代码是一个 IF 语句,检查 AutoFilterMode 是否已关闭,如果发现它已关闭,则将其打开,如下所示 'Turn
我仍在学习 VBA,想知道是否有办法在筛选范围内运行 VLOOKUP。 比如下面的代码,我过滤数据后,第一行数据是A4。 但是,我必须手动指定第一行数据在A4中。 我的问题是是否有可能让宏检测第一行数
我想用 VBA 做什么 - 使用数组过滤表并删除行。我的数组有 4 个元素(在循环中更改为有 5 个不同的集合)。正在过滤的列有 5 个元素。我只想得到 1。这是一个循环,它将创建 5 个报告,每个报
我正在编写一段 VBA 代码,它应该保存并恢复 Excel 中当前的自动筛选状态。我一直在使用the code here很长一段时间没有任何问题,但现在我遇到了一个非常严重的问题。让我来说明一下...
我正在使用 Powershell 来操作具有数千个计算机名和 IP 的 .csv 文件。我正在使用 powershell,因为它是我正在构建的更大脚本的一部分。 我正在通过 Excel 使用 Rang
我正在使用 VBA 应用具有特定日期范围的自动过滤器并运行以下代码。问题是,每次我应用自动过滤器时,日期都是美国格式(MM/DD/YYYY)。在我的报告中,日期采用英国格式 (DD/MM/YYYY),
假设我在 Column_H 上有很多值。 我需要搜索值= "Close"在该列上,如果找到则 clear the entire row包含该值。 备注 : 使用 Autofilter 方法不适用(由于
我希望你能帮忙。我收到错误 Run Time Error 1004 AutoFilter method of Range class Failed 当我运行我的代码时 Public Sub TestT
我正在尝试创建一个过滤器来执行以下操作 以“4”开头或包含“2TWH”或包含“2TER” 我相信结果会是这样的 ActiveSheet.Range("$A$5:$H$10").AutoFilter F
我是 VBA 新手,正在开发一个项目,在该项目中我必须过滤两个特定值(4400000000 和 5600000000)之间的数据。这对我来说比较棘手的是,5500000000 中的一些后面有字母,即
我尝试了以下C# 编码: wsDt.Cells["A10:G10"].AutoFilter = false; 但过滤器并未从我的 excel 中删除。 任何其他删除它的方法。 谢谢... 最佳答案 在
我是一名优秀的程序员,十分优秀!