0
我有隐藏和取消隐藏我的表中的行基于更改我的下拉列表中的值的代码。每次更改下拉菜单时,都会收到运行时错误'1004'。我有一个私人小组之前,并将其更改为一个小组,但似乎并不是解决方案。运行时错误'1004'与我的VBA隐藏和取消隐藏行
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Target.Parent.Range("L6")
If Target.Count > 1 Then Exit Sub
If Intersect(Target, rng) Is Nothing Then Exit Sub
Application.Run "dynamic_hide"
End Sub
Sub dynamic_hide()
If Target.Range = "$S$9:$S$51" Then
If Target.Range = 0 Then Rows("F9:T51").EntireRow.Hidden = True
If Target.Value <> 0 Then Rows("F9:T51").EntireRow.Hidden = False
End If
End Sub
'Target'变量只在'Worksheet_Change' Sub中声明,所以第二个Sub无法访问它 - 您需要将它作为参数传递,或者在一个Sub中运行所有代码。 '如果Target.Range = 0' - 我认为它应该是Range.Value。 – BrakNicku 2015-02-23 16:45:04
它几乎看起来像你可以忽略Target,并且每次更改工作表时只测试单元格L6的值。如果您保留L6值的静态副本,您可以独立测试是否确实有变化。 – Joffan 2015-02-23 17:54:42
Joffan之所以包括目标,是因为L6是一个下拉列表,我想在每次更改单元格时执行该事件。 – user3666237 2015-02-23 18:03:35