如果您要使用用户定义函数(也称为UDF),请执行所有操作;不要依赖于预备工作表公式将剥离的数字和可能的后缀文本传递给UDF。
在标准代码模块中,如下所示:
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
我使用了你的叙述添加了几个可选参数。如果情况发生变化,您可以更改这些参数。最值得注意的是是否使用
bNumericReturn 选项返回真实数字或类似数字的文本。请注意,返回的值如下所示的供应图像中真正的数字应该右对齐。
通过将第六个参数设为
FALSE
,返回的内容是看起来像数字的文本,并且现在左对齐在工作表单元格中。