excel-vba - extrahieren von text zwischen 2 Zeichen
Hätte ich in dieser Spalte:
ColA
-----
NUMBER(8,3)
NUMBER(20)
Ich brauche eine VBA-Funktion, das würde gehen (Hinweis: diese start-und end-Zeichenfolge sollte immer nur einmal vorkommen in einer Zelle):
extract_val(Zelle,start_str,end_str)
ie. extract_val(A1,"(",")") und geben Sie die Ergebnisse:
8,3
20
Nur muss ich um diese Funktion zu verwenden, die in anderen vba-code nicht indem ich es wie eine Formel auf dem Blatt.
UPDATE (vielen Dank für die Antwort, ich ließ mich auf:)
---------------------------
Public Function extract_value(str As String) As String
Dim openPos As Integer
Dim closePos As Integer
Dim midBit As String
On Error Resume Next
openPos = InStr(str, "(")
On Error Resume Next
closePos = InStr(str, ")")
On Error Resume Next
midBit = mid(str, openPos + 1, closePos - openPos - 1)
If openPos <> 0 And Len(midBit) > 0 Then
extract_value = midBit
Else
extract_value = "F"
End If
End Function
Public Sub test_value()
MsgBox extract_value("NUMBER(9)")
End Sub
Möglicherweise möchten Sie die closePos line starten an der position, wo er fand die openPos, sonst könnten Sie finden eine schließende Klammer VOR der Klammer, aber angesichts Ihrer Beispiele ist dies unwahrscheinlich.
etwas off-Bereich Hinweis: stackoverflow.com/questions/2757477/trap-error-or-resume-next
etwas off-Bereich Hinweis: stackoverflow.com/questions/2757477/trap-error-or-resume-next
InformationsquelleAutor toop | 2011-09-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
instr
zu suchen, ein Zeichen innerhalb der Zeichenfolge (Rückgabe der position des'('
zum Beispiel). Sie können dann mitMitte
zu extrahieren substing, mit den Positionen der'('
und')'
.Etwas wie (aus dem Gedächtnis):
Können Sie die Fehlerprüfung im Falle, dass diese Zeichen nicht auftreten, in der string.
InformationsquelleAutor paxdiablo
Wenn der string "Wert von A ist [1.0234] und der Wert von B ist [3.2345]"
Wenn Sie wollen extrahieren Sie den Wert von B d.h., 3.2345, dann
InformationsquelleAutor EIV
Wenn ich eine Gurke Tabelle als test-Daten in einer Zelle, und benötigen Zugriff auf den Wert unter "Header-1" zwischen 4. und 5. Rohre, die unten ist, wie ich es getan. Meine Tabelle-Beispiel, wie unten in der Zelle D7 :
*Zelle D7:
code für den Zugriff auf 'abcd' die sich nach dem 4. vorkommen von '|' und vor dem 5. vorkommen von '|'
InformationsquelleAutor Zv Lfdl