2016-03-31 3 views
1

Ich habe einen Code, der Portcodes zur Identifizierung einer Handelsregion verwendet. In den meisten Fällen funktioniert es gut, aber eine der Ausnahmen ist nicht richtig zu identifizieren.Erkennungscode funktioniert nicht

Im Wesentlichen, wenn der Handel EU-NA ist und das Ziel in der Karibik (gehalten in einem Schrägstrich getrennte Liste in Range("RegionNACar")) es " to NA EC" als Suffix wählen soll (sSufTo). Die einzige Ausnahme ist, wenn der Ursprungs-Port ist. In diesem Fall sollte er auf das Standard-Suffix " to NA GL" zurückgesetzt werden (das früher identifiziert wurde).

Die Hauptfunktion in Betrieb ist Contains_Keyword, die ausgiebig im Rest des Moduls verwendet wird und funktioniert im Allgemeinen ausgezeichnet:

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 

Der durch diese Linie genannt wird (meist ohne .Value verwendet, aber ich fügte hinzu, es um zu sehen, ob es helfen würde):

If sTrade = "EU-NA" And Contains_Keyword(UCase(sPODCo), Range("RegionNACar").Value) _ 
    And Not (UCase(sPOL) = "ESSDR") Then sSufTo = " to NA EC" 

ich eine Uhr sowohl auf Range("RegionNACar").Value im Unter selbst und auf sKeywords in der Funktion festgelegt haben; Während es die richtigen Daten in der Uhr abruft, landet sKeywords schließlich die Daten von Range("RegionSAEC"), die in der darüber liegenden Zelle gespeichert sind. Ich habe die Bereichsnamen und Referenzen überprüft und sie sind alle korrekt.

Kann jemand sehen, was los ist? Ich muss etwas übersehen, aber ich kann nicht für das Leben von mir herausfinden was ...

Antwort

0

Nun, es erklärt nicht, was schief läuft oder mir eine schöne elegante Single-Line-Lösung, aber Ich habe diese Problemumgehung für jetzt verwendet:

Es ist nicht so sauber, aber es funktioniert. (So ​​weit ich das jetzt sagen kann.)

Verwandte Themen