У меня есть код, который использует коды портов для определения региона торговли. По большей части он работает нормально, но одно из исключений не идентифицируется должным образом.Код обнаружения не работает
В сущности, когда торговля EU-NA
и назначения в Карибском море (провел в слэш-разделителями в списке в Range("RegionNACar")
) он должен выбрать " to NA EC"
как суффикс (sSufTo
). Единственным исключением является исходный порт "ESSDR"
, и в этом случае он должен вернуться к суффиксу по умолчанию " to NA GL"
(который успешно идентифицирует ранее).
Основная функция используется в Contains_Keyword
, который широко используется в остальной части модуля и в целом работает отлично:
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
, но я добавил его чтобы увидеть, если он помог бы):
If sTrade = "EU-NA" And Contains_Keyword(UCase(sPODCo), Range("RegionNACar").Value) _
And Not (UCase(sPOL) = "ESSDR") Then sSufTo = " to NA EC"
Я установил часы как на Range("RegionNACar").Value
в самом подразделы и sKeywords
внутри функции; в то время как он извлекает правильные данные в часах, sKeywords
заканчивает извлечение данных из Range("RegionSAEC")
, хранящихся в ячейке над ним. Я проверил имена диапазонов и ссылки, и все они верны.
Может ли кто-нибудь определить, что случилось? Я, должно быть, что-то не замечаю, но не могу, чтобы жизнь меня определяла что ...