Excel VBA点击主表超链接筛选第二表数据出现Runtime 424错误求助
问题原因
Runtime 424「需要对象」错误由两个代码问题导致:
- 代码中使用的
OB变量未做任何声明和赋值,VBA无法识别该对象 - 直接写
Reference.Activate不符合VBA工作表引用规则,不能直接用工作表名作为对象调用
修正后代码
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Dim refSheet As Worksheet ' 仅响应第2列的超链接点击 If Target.Range.Column <> 2 Then Exit Sub ' 绑定Reference工作表,避免硬编码出错 On Error Resume Next Set refSheet = ThisWorkbook.Worksheets("Reference") On Error GoTo 0 If refSheet Is Nothing Then Exit Sub ' 执行筛选,这里假设Reference工作表内的表格名称为Reference With refSheet.ListObjects("Reference") .Range.AutoFilter Field:=4, Criteria1:=Target.Range.Value End With ' 跳转至Reference工作表 refSheet.Activate End Sub
注意事项
- 代码必须放置在存储姓名超链接的主工作表的代码模块中,不能放在普通模块、ThisWorkbook模块或Reference工作表的模块内
- 请确认Reference工作表里的结构化表格名称确实为
Reference,如果表格名称有出入,修改ListObjects()内的参数即可 Field:=4代表按结构化表格的第4列做筛选,如果你要匹配的姓名列在Reference表格的其他列,调整为对应列序号即可
内容的提问来源于stack exchange,提问作者Manny
相关产品推荐
相关产品推荐

