excel - 在 Excel 中使用列表框选择进行数据过滤时出错
问题描述
我有组合列表框,我想通过它过滤从 I6 到 L21 的表。这是列表框和表格的快照。 但是当我选择一个或多个选项并尝试从表中过滤数据时,它会给我“需要对象”错误。这是我的代码
Sub cmd1_Click()
Dim x As Variant
ReDim x(0)
Application.ScreenUpdating = False
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
x(UBound(x)) = ListBox1.List(i)
ReDim Preserve x(UBound(x) + 1)
End If
Next i
Sheet2.Range("I6:L35").AutoFilter Field:=3, Criteria1:=x, Operator:=xlFilterValues
Application.ScreenUpdating = True
End Sub
解决方案
ListBox1
在那个范围内不存在。要么不叫它,要么不在范围内。验证名称,并进行相应修复。
但是代码甚至不应该首先被允许使用未定义的标识符进行编译。始终放在Option Explicit
每个模块的顶部。
您可以勾选 VBE 选项对话框中的“需要变量声明”复选框以Option Explicit
自动添加到每个模块。
推荐阅读
- html - 点击 EditText 时,Talkback 应该先说标签名称,然后是编辑框
- compilation - COBOL Copybook 版本控制
- reactjs - 没有事件的 useState
- c++ - 如何迭代 Catch2 中编译时参数的所有排列?
- sql - CREATE VIEW 更改 CURRENT_SCHEMA
- java - 缺少 MCP 1.12.2 数据包(被黑客户端 NoFall)
- asp.net-core - 将时间跨度的小时和分钟和秒分别绑定到模型 asp.net 核心
- spring - 休眠。实体唯一性的困难
- amazon-web-services - 如何查看使用 AWS SNS 发送的短信文本?
- sql - 包含 WITH 表和参数的函数