String 在VBA/Excel文本中提取数字
寻找一些建议来调整/增强我创建的公式,从字符串中提取数字 在单元格A1中包含以下示例文本: 基于invnum:-1234567,计算基于123.33*3.00 在B1中写下以下公式String 在VBA/Excel文本中提取数字,string,vba,text,numbers,extract,String,Vba,Text,Numbers,Extract,寻找一些建议来调整/增强我创建的公式,从字符串中提取数字 在单元格A1中包含以下示例文本: 基于invnum:-1234567,计算基于123.33*3.00 在B1中写下以下公式 =VALUE(LEFT(MID(A1,FIND("invnum:-",A1)+7,LEN((A1))),7) 给出的结果是-1234567 但是,我的源文件上的参考号的长度是可变的,希望只提取invnum一词后面的数字:- 希望在宏中包含此公式,因此尽量保持简单。请提供任何想法/建议?尝试此功能: Function
=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))
让我们疯狂一点,慢慢来 从需要查找的中间索引开始,例如数字字符串的开始、结束和长度。一旦你有了这些,只要小心地重新组合你的公式:
我想数字后面还有其他单词吗?您能在两个单元格中显示整个字符串吗?2016年2月29日的到期金额基于invnum:-1234567计算基于123.33*3.0 2016年3月的到期金额基于invnum:-178634计算基于345.90*56.85根据请求修改2016年2月3日的部分到期金额基于invnum:-178634计算基于89.54*5.32Hi Scott-我在单元格A1、A2、A3等中有上述内容。@Sas请单击答案旁的灰色/绿色复选标记,将其标记为正确。它将把问题标记为已回答。这是只有你才能做的事。