Excel 检测代码不工作
我有一段代码,它使用港口代码来识别贸易地区。在大多数情况下,它工作正常,但其中一个例外是没有正确识别 本质上,当贸易为Excel 检测代码不工作,excel,vba,Excel,Vba,我有一段代码,它使用港口代码来识别贸易地区。在大多数情况下,它工作正常,但其中一个例外是没有正确识别 本质上,当贸易为EU-NA且目的地位于加勒比海(位于范围(“RegionNACar”)的斜线分隔列表中)时,应选择“to NA EC”作为后缀(sSufTo)。唯一的例外情况是,如果源端口是“ESSDR”,则在这种情况下,它应恢复为默认后缀“to NA GL”(该后缀在前面成功识别) 正在使用的主要功能是包含_关键字,该功能在模块的其余部分中广泛使用,通常工作正常: Function Conta
EU-NA
且目的地位于加勒比海(位于范围(“RegionNACar”)
的斜线分隔列表中)时,应选择“to NA EC”
作为后缀(sSufTo
)。唯一的例外情况是,如果源端口是“ESSDR”
,则在这种情况下,它应恢复为默认后缀“to NA GL”
(该后缀在前面成功识别)
正在使用的主要功能是包含_关键字
,该功能在模块的其余部分中广泛使用,通常工作正常:
Function Contains_Keyword(sDescr As String, sKeywords As String) As Boolean
Dim A() As String, bIsIn As Boolean, i As Integer
A = Split(sKeywords, "/")
bIsIn = False
For i = LBound(A) To UBound(A)
If InStr(1, sDescr, A(i)) Then
bIsIn = True
Exit For
Else
End If
Next i
Contains_Keyword = bIsIn
End Function
这是由这行调用的(通常不使用.Value
,但我添加了它以查看是否有帮助):
我在sub本身的Range(“RegionNACar”).Value和函数的sKeywords
上都设置了手表;当它在手表中获取正确的数据时,sKeywords
最终从存储在其上方单元格中的Range(“RegionSAEC”)
中获取数据。我检查了范围名称和引用,它们都是正确的
有人能看出哪里不对劲吗?我一定忽略了什么,但我一辈子都搞不清楚什么…好吧,它不能解释出什么地方出了问题,也不能给我一个很好的简单解决方案,但我现在已经使用了这个解决方法:
If sTrade = "EU-NA" And Contains_Keyword(UCase(sTo), Range("RegionNACar").Value) Then sSufTo = " to NA EC"
If UCase(sPOL) = "ESSDR" Then
If Contains_Keyword(UCase(sTo), Range("RegionNACar")) Then sSufTo = " to NA GL"
End If
虽然没有那么干净,但它很管用。(据我所知,目前为止。)好吧,这并不能解释出什么地方出了问题,也不能给我一个很好的优雅的单线解决方案,但我现在已经使用了这个解决方法:
If sTrade = "EU-NA" And Contains_Keyword(UCase(sTo), Range("RegionNACar").Value) Then sSufTo = " to NA EC"
If UCase(sPOL) = "ESSDR" Then
If Contains_Keyword(UCase(sTo), Range("RegionNACar")) Then sSufTo = " to NA GL"
End If
虽然没有那么干净,但它很管用。(就我目前所知。)