Wenn Sie eine benutzerdefinierte Funktion gehen werden (aka UDF) dann alle durchführen die Taten; Verlassen Sie sich nicht auf die vorläufige Worksheet-Formel, um eine abgestreifte Zahl und möglichen Suffix-Text an die UDF zu übergeben.
In einem Standard-Code-Modul wie
Function udfJustNumber(str As String, _
Optional delim As String = "number", _
Optional startat As Long = 1, _
Optional digits As Long = 13, _
Optional bCaseSensitive As Boolean = False, _
Optional bNumericReturn As Boolean = True)
Dim c As Long
udfJustNumber = vbNullString
str = Trim(Mid(str, InStr(startat, str, delim, IIf(bCaseSensitive, vbBinaryCompare, vbTextCompare)) + Len(delim), digits))
For c = 1 To Len(str)
Select Case Asc(Mid(str, c, 1))
Case 32
'do nothing- skip over
Case 48 To 57
If bNumericReturn Then
udfJustNumber = Val(udfJustNumber & Mid(str, c, 1))
Else
udfJustNumber = udfJustNumber & Mid(str, c, 1)
End If
Case Else
Exit For
End Select
Next c
End Function
Ich habe Ihre Erzählung verwendet, um mehrere optionale Parameter hinzuzufügen. Sie können diese ändern, wenn sich Ihre Umstände ändern. Am bemerkenswertesten ist, ob mit der Option bNumericReturn eine echte Zahl oder ein Text zurückgegeben wird, der wie eine Zahl aussieht. Beachten Sie, dass die zurückgegebenen Werte rechtsbündig sind, da in dem folgenden bereitgestellten Bild echte Zahlen enthalten sein sollten.
Durch FALSE
den sechsten Parameter liefert, ist der zurückgegebene Inhalt Text-that-Look-like-A-Nummer und nun linksbündig in der Arbeitsblatt-Zelle ist.
Können Sie VBA oder nur Formeln verwenden? Was ist die erwartete Ausgabe? –
Alles wird tun. Ich sehe, ich habe bereits 3 mögliche Antworten und ich werde sie während des Tages testen. –