excel - 仅在未过滤数据时执行
问题描述
我的 vba 代码只能在过滤后可见的行上运行。
我的代码将为 table1 中的每一行返回一个 msgbox(并执行其他操作)。如果该行被“过滤掉”并因此未显示,则代码将转到下一行,而不显示 msgbox 等。
表 1 如下所示:
姓名 父亲姓名 邮编
彼得卡尔 3200
雅各布埃里克 2800
克里斯蒂安卡尔 3400
我试图跳过 higth = 0 或 EntireRow.Hidden 但没有成功的行。
我确信我正在以错误的方式做一件简单的事情。但请指教
Dim i As Integer
Range("Tabel1[[#Headers],[Name]]").Select
For i = 1 To 3
MsgBox ("hey")
Next i
代码显示所有行的消息框,无论它们是否被过滤掉。
解决方案
使用表格SpecialCells()
的DataBodyRange
通缉列
Dim rng As Range
For Each rng In ActiveSheet.ListObjects("Tabel1").ListColumns("Name").DataBodyRange.SpecialCells(xlCellTypeVisible)
MsgBox ("hey from row " & rng.Row)
Next
推荐阅读
- tidymodels - 您将如何使用 tidymodels 指定条件逻辑回归
- python - 如何根据 Python 中的列中的值将 csv 文件拆分为两个文件?
- tomcat - 如何访问部署在 kubernetes 上的 pod tomcat 的 url
- makefile - 如何在同一个 makefile 中多次强制重建 PHONY 目标?
- r - 如何在 R fixst 中制作模型方程并选择因子交互
- amazon-web-services - Terraform aws_eks_node_group 创建错误,launch_template “不支持 - 当前不支持请求的配置”
- python - 在python中动态地将一个数组扭曲到另一个数组
- cuda - cuda fortran cufftPlanMany
- reason - 理解在reasonml文件顶部定义的模块语法
- selenium - 询问重新运行测试失败并合并(RobotFramework)