运行时错误' 13'在下拉列选择器上

时间:2017-05-12 05:07:59

标签: excel-vba vba excel

我不确定如何使用excel公式执行此功能,所以我尝试了VBA。我将仪表板放在一起,我希望用户只根据他们在下拉列表中选择的内容来查看某些列。

我的代码适用于其目的;从列表中选择一个项目,隐藏某些列。我遇到的问题是,当我将一个数字放在一个随机单元格中时,比如说17B,并填充到右边;
我得到了

  

运行时错误' 13' '类型不匹配'。

当我点击弹出窗口向我通知错误时,我的代码继续工作。但这种不断的弹出是令人讨厌的,我做错了什么?运行时错误突出显示第2行; if / then语句的第一部分。谢谢。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 And Target.Row = 3 And Target.Value = "car" Then
        Application.Columns("C:I").Select
        Application.Selection.EntireColumn.Hidden = False
        Application.Columns("J:BZ").Select
        Application.Selection.EntireColumn.Hidden = True

    ElseIf Target.Column = 1 And Target.Row = 3 And Target.Value = "bike" Then
        Application.Columns("J:P").Select
        Application.Selection.EntireColumn.Hidden = False
        Application.Columns("C:I").Select
        Application.Selection.EntireColumn.Hidden = True
        Application.Columns("Q:BZ").Select
        Application.Selection.EntireColumn.Hidden = True

    Else
        Application.Columns("C:BZ").Select
        Application.Selection.EntireColumn.Hidden = False
    End If
End Sub

2 个答案:

答案 0 :(得分:0)

再次见到,这是试图解决问题的方法。修复不起作用; vba代码现在不运行。但是我想结合一些对其他人有用的想法,现在希望得到关于如何制作我的工作的反馈。

我创建了一个comobox,并使用'$ A $ 15:$ A $ 16'作为输入范围; - 这是一个包含'自行车'和'汽车'的列表

对于手机链接,我使用了“$ A $ 3”

组合框仅将1和2输入“$ A $ 3”,并将它们分配给我拥有的两个字符串; 1 - 是汽车,2是自行车。

0 8 * * * /usr/bin/wget http://myboringsite.com/loaddata.php
5 8 * * * /usr/bin/wget http://myboringsite.com/checkloaddatastop.php

End Sub

答案 1 :(得分:0)

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Cells.Count = 1 Then
        If Target.Column = 1 And Target.Row = 3 Then
            Application.ScreenUpdating = False

            'start by unhiding all columns
            Me.Range("C:BZ").EntireColumn.Hidden = False
            'then hide any which need hiding...
            If Target.Value = "car" Then
                Me.Range("J:BZ").EntireColumn.Hidden = True
            ElseIf Target.Value = "bike" Then
                Me.Range("C:I,Q:BZ").EntireColumn.Hidden = True
            End If

            Application.ScreenUpdating = True
        End If
    End If

End Sub