Excel 隐藏列VBA代码-类型不匹配错误

Excel 隐藏列VBA代码-类型不匹配错误,excel,vba,syntax,type-mismatch,Excel,Vba,Syntax,Type Mismatch,我试图隐藏列;G、 H、O、S、T和U当在列D中选择“处置”的相关下拉选项时。 我对VBA完全陌生。该代码取自在线,用于1x单元选择;也就是说,当单元格D3填充了“Disposed”且仅单元格D3时,宏将执行 试图将范围修改为;D:D、$D、$D;D$和$D3:$D1000每次都有相同的错误代码;运行时错误“13”:类型不匹配 我现在对VBA语法了解得足够多,可以纠正这一点,并感谢您的帮助 编辑 Dim cell As Range,对于Intersect中的每个单元格(Target,Me.Ran

我试图隐藏列;G、 H、O、S、T和U当在列D中选择“处置”的相关下拉选项时。 我对VBA完全陌生。该代码取自在线,用于1x单元选择;也就是说,当单元格D3填充了“Disposed”且仅单元格D3时,宏将执行

试图将范围修改为;D:D、$D、$D;D$和$D3:$D1000每次都有相同的错误代码;运行时错误“13”:类型不匹配

我现在对VBA语法了解得足够多,可以纠正这一点,并感谢您的帮助

编辑


Dim cell As Range
对于Intersect中的每个单元格(Target,Me.Range(“D:D”)
选择Case cell.Value
下一步
。谢谢。我仍然不明白如何实现这一点,想象我是一个蹒跚学步的孩子。Pascal中最后一次使用的代码是25年前。如果您正在更改下拉列表(仅一个单元格),然后我会在
如果没有….
之前添加
如果Target.CountLarge>1 Exit Sub
,然后将
选择Case Range(“d:d”)
更改为
选择Case Target.Value
。谢谢。仍然收到编译错误,语法错误。我的错,忘记了
然后
,如果Target.CountLarge>1然后退出Sub
Private Sub Worksheet_Change(ByVal Target As Range)
 
If Not Intersect(Target, Range("$D:D")) Is Nothing Then
    Select Case Range("$D:D")
        Case "Disposal": ACF_Disposal
    End Select
End If

End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.CountLarge > 1 Exit Sub Then
 If Not Intersect(Target, Range("D:D")) Is Nothing Then
Select Case Target.Value
 Case "Disposal": ACF_Disposal
 End Select
End If
End Sub