如果字符串中有冒号,我有IF
语句返回数字。有时字符串不包含冒号。我正在寻找else
语句,如果字符串中没有冒号,则会选择唯一的数字" 45061。 A =当字符串有冒号时工作,但如果字符串没有冒号,我需要一些B的帮助。
一个。
String/Text = OM_Account_Master_Slave~Account CP~3712011:Shared-001
乙
String/Text = OM_Account_Master_Slave~Account CP~45061Shared-001
一个。
if(contains,":",Substring(Abbrev(),1,Subtract(Length(Abbrev()),11)))
结果= 3712011:Shared-001
B中。
if(contains,":",Substring(Abbrev(),1,Subtract(Length(Abbrev()),11)))
else
答案 0 :(得分:1)
考虑以下用户定义函数:
Public Function GetNumber(r As Range) As Variant
Dim v As String, capture As Boolean
Dim i As Long, t As String
v = r.Value
GetNumber = ""
If v = "" Then Exit Function
t = ""
capture = False
For i = 1 To Len(v)
m = Mid(v, i, 1)
If IsNumeric(m) Then
t = t & m
capture = True
Else
If capture Then Exit For
End If
Next i
If Len(t) > 0 Then
GetNumber = CLng(t)
End If
End Function
用户定义函数(UDF)非常易于安装和使用:
如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx
删除UDF:
从Excel使用UDF:
=GetNumber(A1)
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
有关UDF的详细信息,请参阅:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
必须启用宏才能使其生效!