Gibt es eine Möglichkeit, die FIND-Methode zu verwenden, um nach 1 von 2 alternativen Werten zu suchen? Set d = .Find(What:=[a OR b])
Excel VBA Suchmethode mit 2 Suchwerten?
EDIT: Vielen Dank für die UNION Vorschläge. Ich hatte keine Ahnung, dass das möglich war, oder ich hätte ursprünglich mehr Details zur Verfügung gestellt, um die Frage klarer zu machen. Also hier ist ein zweiter Versuch:
Ich habe 3 Spalten. A ist mit Daten gefüllt. B ist ein Code. Und D ist, wo ich eine Funktion einfügen muss. Die Funktion wertet den Code in colB aus, und wenn der Code eine "2" ist, wird die FIND-Methode ausgeführt, um den nächsten vorherigen Code 1 OR 2 in colB zu finden, dann werden die Daten von colA in den zwei Zeilen subtrahiert. Zum Beispiel:
A |B ...|D
[date1] |5 |[function does nothing]
[date2] |1 |[function does nothing]
[date3] |3 |[function does nothing]
[date4] |2 |[code 2 found, function inserts result of [date4]-[date2]
(letzte Zeile würde gleich sein, wenn der 2. Zeile 2 einen Code hatte anstelle eines 1)
Hier ist der Code, den ich habe jetzt:
Private Function FindPrevActionCode(ActionCodeCell As Range, SearchCode As Byte)
'ActionCodeCell is the cell to check, search the value of that cell
'SearchCode is the code to look for
Dim d As Range 'Holds result of Find method
If ActionCodeCell.Value = 2 Then
With Worksheets(AppTab).Columns(cnAppActionCode)
Set d = .Find(What:=SearchCode, After:=ActionCodeCell, _
LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, _
MatchCase:=False, SearchFormat:=False)
End With
FindPrevActionCode = Cells(ActionCodeCell.row, cnAppTransEffDate).Value
- Cells(d.row, cnAppTransEffDate).Value
End If
End Function
Können Sie die Suchmethode für jeden gewünschten Wert ausführen und sie dann zusammenfügen? –
Warum VBA und keine Formel? –