带有公共变量的VBA If语句错误类型不匹配(错误13)



我认为这可能是一个快速解决方案,但它整个上午都在困扰我。

我在vba项目的顶部定义了许多变量为public(任何以"yn"结尾的变量都是String,其余的都是Variant或Single)。整个项目中不同的子项目通过一系列的问题和答案来定义这些变量。最后,当我试图将定义的变量编译成一个方程时,我得到了一个错误。

上周,我已经用不同的最终方程式做了同样的过程,效果很好。我已经检查了每个变量,以确保它是正确输入的,我看不出代码有任何错误。请帮忙!谢谢

    Public Sub Rth1 ()
    Dim Red1th as single
    If Width1thyn = vbYes Then
        If Length1thyn = vbYes Then
            If V1turnspeedyn = vbYes Then
                Red1th = ((Width1th + 20) / (1.47 * 20)) - 1
            Else
                Red1th = ((Width1th + 20) / (1.47 * V1turnspeedstudy)) - 1
            End If
        Else
            If V1turnspeedyn = vbYes Then
                Red1th = ((Width1th + Length1thstudy) / (1.47 * 20)) - 1
            Else
                Red1th = ((Width1th + Length1thstudy) / (1.47 * V1turnspeedstudy)) - 1
            End If
        End If
    Else
        If Length1thyn = vbYes Then
            If V1turnspeedyn = vbYes Then
                Red1th = ((Width1thstudy + 20) / (1.47 * 20)) - 1
            Else
                Red1th = ((Width1thstudy + 20) / (1.47 * V1turnspeedstudy)) - 1
            End If
        Else
            If V1turnspeedyn = vbYes Then
                Red1th = ((Width1thstudy + Length1thstudy) / (1.47 * 20)) - 1
            Else
                Red1th = ((Width1thstudy + Length1thstudy) / (1.47 * V1turnspeedstudy)) - 1
            End If
        End If
    End If
    MsgBox "Red Clearance Interval is " & Red1th, "vbOkOnly", "Red Clearance Interval"
    End Sub
MsgBox返回时使用

vbYes

如果您的变量不依赖于MsgBox返回,请考虑使用Boolean或分配您自己的枚举(避免使用vb起始名称),

确保在以前的代码中的赋值中使用了vbYes

相关内容

  • 没有找到相关文章

最新更新