条件类型不匹配

本文关键字:不匹配 类型 条件 | 更新日期: 2023-09-27 18:07:59

我是VBA的新手,但我一直在编程很多c#。我这里的问题是,我一直得到"运行时错误13。我的VBA函数中出现"类型不匹配"错误。

我正在从访问表中提取数据,然后试图过滤一些数据。

我的函数是这样的:

Function FlowType(deliveryAdrID As String, deliverType As String, note As String) As String
    If (note = "*J") Then
        FlowType = "Weekend"
    ElseIf (deliveryAdrID = "62242" & deliverType = "H") Then
        FlowType = "AirGotland"
    ElseIf (deliveryAdrID <> "62242" & deliverType = "H") Then
        FlowType = "Air"
    Else
        FlowType = "Standard"
    End If
End Function

为什么我得到这个错误?错误发生在这一行:

ElseIf (deliveryAdrID = "62242" & deliverType = "H") Then

条件类型不匹配

你的问题是因为你使用&,而不是And。&符号是连接字符串的操作符,而And是布尔操作符。因此,像这样更改比较:

ElseIf ((deliveryAdrID = "62242") And (deliverType = "H")) Then

对于&,(假设两个条件都满足)您使用的表达式将求值为

ElseIf ("TrueTrue") Then

这是没有意义的,因为"TrueTrue"不是布尔值

您声明deliveryAdrID为Double,但您试图将String分配给它:

deliveryAdrID = "62242"

这是一个类型不匹配,正如VBA试图告诉你的。;)

使用

deliveryAdrID = 62242