我是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