我在单元格中有一堆文本,但是许多单元格包含一些格式为#。#的文本(其中#实际上是0-9之间的数字)。
我正在使用这个可行的公式,但有时单元格中会有垃圾导致公式返回错误的信息。
= MID(B7,(FIND({ “”},B7,1)-1),3)
例如,有时一个单元格包含:“abc(1st.list)测试8.7 yay”。因此我最终得到了t。而不是所需的8.7。
有什么想法吗?
谢谢!
答案 0 :(得分:3)
这是一个用户定义函数,当且仅当它与您描述的模式匹配时,才会返回字符串中的数字模式。如果您描述的模式不具有代表性,那么您需要提供更好的示例:
Option Explicit
Function reValue(S As String)
Dim RE As Object, MC As Object
Set RE = CreateObject("vbscript.regexp")
With RE
.Global = True
.Pattern = "\b\d\.\d\b"
If .test(S) = True Then
Set MC = .Execute(S)
reValue = CDbl(MC(0))
Else
reValue = ""
End If
End With
End Function