Ich steh vor folgendem Problemchen:
In einer Spalte sollen Werte mit einer Konstanten verglichen werden. Bei demjenigen Spaltenwert, der am nächsten zur Konstanten ist, soll dann die Differenz in der Zelle daneben ausgeschrieben werden.
Ich hab mir nun überlegt man könnte dieses Problem mit "StrComp" lösen. Wird der Wert grösser als die Konstante (lngGrenz), ändert StrComp von -1 auf 1. Danach wird verglichen welcher der beiden Werte näher bei der Konstanten liegt und die entsprechende Differnz gebildet. Hier der code:
...
For Each objA In rngGroup
lngVerglOld = lngVergl
lngVergl = StrComp(objA, lngGrenz)
If lngVergl <> lngVerglOld Then
blnVergl = True
End If
If blnVergl Then
blnVergl = False
If Abs(objA.Offset(-1) - lngGrenz) <= Abs(objA - lngGrenz) Then
objA.Offset(-1, -4) = objA.Offset(-1) - lngGrenz
Else
objA.Offset(, -4) = objA - lngGrenz
End If
Exit For
Bei dem ersten Durchlauf, muss ich aber lngVerglOld, resp lngVergl manuell setzen.
If "Position von objA in rngGroup" = 1 resp. Counter=1 Then
If StrComp(objA, lngGrenz) => 0 Then
lngVergl = -1 'und die Differenz müsste neben dem objA ausgeschrieben werden
Else
lngVergl = 1
End If
Kann ich irgendwie die Position von objA innerhalb des Ranges (1. Stelle, 2. Stelle, ...)feststellen oder muss ich das mit einem Counter lösen?
Ich hoffe es ist verständlich
gruss
felix