我的代码的目的非常简单。它旨在在用户提交表单时隐藏和取消隐藏某些单元格。当用户希望重新开始并一次清除来自多个小区的数据时,他们会遇到运行时错误' 13'类型不匹配。以下是代码,任何人都可以帮忙吗?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Row = 2 And Target.Value = "Exceptions Reviewer" Then
Application.Columns("F:G").Select
Application.Selection.EntireColumn.Hidden = True
End If
If Target.Column = 2 And Target.Row = 2 And Target.Value = "CAT Payouts Tracker Entry" Then
Application.Columns("F:P").Select
Application.Selection.EntireColumn.Hidden = True
End If
If Target.Column = 2 And Target.Row = 2 And Target.Value = "CAT Payouts Tracker Supervisor" Then
Application.Columns("F:P").Select
Application.Selection.EntireColumn.Hidden = True
End If
If Target.Column = 2 And Target.Row = 2 And Target.Value = "Agent Error Review" Then
Application.Columns("F:P").Select
Application.Selection.EntireColumn.Hidden = False
End If
If Target.Column = 2 And Target.Row = 2 And Target.Value = "Agent Error and Exceptions Reviewer" Then
Application.Columns("F:P").Select
Application.Selection.EntireColumn.Hidden = False
End If
答案 0 :(得分:1)
尝试从可能的多细胞靶标中分离B2。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Cells(2, "B")) Is Nothing Then
Columns("F:P").EntireColumn.Hidden = False
Select Case Cells(2, "B").Value2
Case "Exceptions Reviewer"
Columns("F:G").EntireColumn.Hidden = True
Case "CAT Payouts Tracker Entry", _
"CAT Payouts Tracker Supervisor", _
"Agent Error Review", _
"Agent Error and Exceptions Reviewer"
Columns("F:P").EntireColumn.Hidden = True
Case Else
'do nothing
End Select
End If
End Sub
答案 1 :(得分:1)
通常,当其中一个单元格包含错误时会发生类型不匹配
#N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, or #NULL!
尝试测试它们
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
With Target.Cells(1)
If .Column = 2 And .Row = 2 And Not IsError(.Value2) Then
Select Case .Value2
Case "Agent Error and Exceptions Reviewer", _
"Exceptions Reviewer"
Columns("F:G").Hidden = True
Case "CAT Payouts Tracker Entry", _
"CAT Payouts Tracker Supervisor", _
"Agent Error Review"
Columns("F:P").Hidden = True
End Select
End If
End With
End Sub
答案 2 :(得分:0)
您的代码的翻译可以是以下内容:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$2" Then Exit Sub ' exit if changed cell is not "B2" one only
Select Case Target.value2
Case "Exceptions Reviewer"
Columns("F:G").EntireColumn.Hidden = True
Case "CAT Payouts Tracker Entry", "CAT Payouts Tracker Supervisor"
Columns("F:P").EntireColumn.Hidden = True
Case "Agent Error Review", "Agent Error and Exceptions Reviewer"
Columns("F:P").EntireColumn.Hidden = False
End Select
End Sub
哪会&#34;累积&#34;隐藏/取消隐藏的列
例如,你需要任何&#34; B2&#34;单元格内容更改为隐藏/取消隐藏相应列,同时取消隐藏所有其他列,然后您将使用:Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$2" Then Exit Sub ' exit if changed cell is not "B2" one only
Columns("F:P").EntireColumn.Hidden = False ' un-hide all columns for start
Select Case Target.value2
'now hide columns as a consequence of cell B2 content
Case "Exceptions Reviewer"
Columns("F:G").EntireColumn.Hidden = True
Case "CAT Payouts Tracker Entry", "CAT Payouts Tracker Supervisor"
Columns("F:P").EntireColumn.Hidden = True
End Select
End Sub