簡體   English   中英

在文本VBA / Excel中提取數字

[英]Extract numbers within text VBA/Excel

尋找一些建議來調整/增強我創建的公式,以從字符串中提取數字。

在單元格A1中具有以下示例文本:

基於invnum:-1234567計算基於123.33 * 3.00

在B1中寫下以下公式

=VALUE(LEFT(MID(A1,FIND("invnum:-",A1)+7,LEN((A1))),7)

給出的結果是-1234567

但是,我的源文件上參考號的長度是可變的,希望僅提取單詞invnum之后的數字:-

希望在宏中包含此公式,因此,請嘗試簡化它,以便提出任何想法/建議?

試試這個功能:

Function findNumber(inPtStr As String) As Double
    Dim strArr() As String
    Dim i As Long
    inPtStr = Replace(inPtStr, ":", " ")
    strArr = Split(inPtStr)
    For i = LBound(strArr) To UBound(strArr)
        If IsNumeric(strArr(i)) Then
            findNumber = --strArr(i)
            Exit Function
        End If
    Next i
End Function

然后,您可以從常規子調用它。

如果您想要一個公式,則:

=--TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),FIND("invnum:",SUBSTITUTE(A1," ",REPT(" ",99)))+7,99))

讓我們瘋狂並逐步解決這個問題...

從您需要查找的中間索引開始,例如數字字符串的開始,結束和長度。 一旦有了這些,只需仔細地重新組合公式即可:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM