首页 > 解决方案 > 分隔字符串并仅显示第一个值

问题描述

开发一个分隔字符串的函数,我想在 = 之后显示第一个值,即 16 而不是整个分隔的字符串。

我希望能得到一些帮助谢谢。

Sub Split()

    Dim arr() As String
    
    arr = Split("KeyNo = ,16,17,18", ",")

    Dim name As Variant
    For Each name In arr
        Debug.Print name
    Next

End Sub

这个也是

Sub Split2()

    Dim arr() As String
    
    arr = Split("KeyNo = 16,17,18", ",")

    Dim name As Variant
    For Each name In arr
        Debug.Print name
    Next

End Sub

标签: excelvbasplit

解决方案


处理此问题的一种方法是使用正则表达式:

Option Explicit

Private Sub Test()
   MsgBox ExtractFirstNumber("KeyNo = ,16,17,18")
   MsgBox ExtractFirstNumber("KeyNo = 16,17,18")
End Sub

Private Function ExtractFirstNumber(ByVal Value As String) As String
   Dim regex As regExp
   Dim matches As MatchCollection

   Set regex = New regExp
   regex.Pattern = "\d+"
   regex.Global = True

   If regex.Test(Value) Then
      Set matches = regex.Execute(Value)
      ExtractFirstNumber = matches(0)
   End If
End Function

推荐阅读