运行时错误' 13':类型不匹配错误代码

时间:2014-03-24 22:01:54

标签: excel-vba runtime-error vba excel

我正在使用以下代码创建一个数据列,我可以将其用作数据透视表中的过滤器。

代码有效,但它标记了“运行时错误'13':类型不匹配”代码错误。任何人都可以帮助我更改代码以消除错误消息。

这是我正在使用的代码。

    Sub negativepivot()

        Sheets("owssvr").Select
        Columns("W:W").Select
        Selection.ClearContents
        Range("W2").Select
        ActiveCell.FormulaR1C1 = "=Table_owssvr[@[Count Zero]]"
        Range("W2").Select
        Selection.AutoFill Destination:=Range("W2:W230"), Type:=xlFillDefault
        Range("W2:W230").Select
        ActiveWindow.SmallScroll Down:=-230
        Range("W1").Select
        ActiveCell.FormulaR1C1 = "Negative results"

    For Each Cell In Range("W2:W230")
    If Cell.Value <= 0 Then
    Cell.Value = "Negative"
    Else
    Cell.Value = Cell.Value
    End If
    Next
    End Sub

1 个答案:

答案 0 :(得分:2)

尽量避免使用.Select.Activate。检查thisthis了解其他方法和原因。此外,在以前的链接中,请检查With的使用情况。

您的代码在程序上看起来是正确的,因此请尝试改进整体风格。 VBA在某种程度上很敏感。

Sub NegativePivotMod()

    With Sheets("owssvr")

        .Range("W:W").ClearContents

        With .Range("W2")
            .FormulaR1C1 = "=Table_owssvr[@[Count Zero]]"
            .AutoFill Destination:=.Range("W2:W230"), Type:=xlFillDefault
        End With

        Range("W1").FormulaR1C1 = "Negative results"

        For Each Cell In .Range("W2:W230")
            If Cell.Value < 0 Then
                Cell.Value = "Negative"
            End If
        Next

    End With

End Sub

如果有帮助,请告诉我们。