如果包含且if不包含冒号,请选择该数字

时间:2016-07-22 13:46:44

标签: if-statement oracle11g

如果字符串中有冒号,我有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 

1 个答案:

答案 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

enter image description here

用户定义函数(UDF)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开了一个新模块
  3. 粘贴内容并关闭VBE窗口
  4. 如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx

    删除UDF:

    1. 按上述方式调出VBE窗口
    2. 清除代码
    3. 关闭VBE窗口
    4. 从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

      必须启用宏才能使其生效!