VBA 使用分割从字符串创建数组

示例

分割功能

返回从零开始的一维数组,其中包含指定数量的子字符串。

语法

拆分(表达式[,分隔符[,限制[,比较]]]

部分描述
表达需要。包含子字符串和定界符的字符串表达式。如果expression是长度为零的字符串(“”或vbNullString),则Split返回一个空数组,其中不包含任何元素,也不包含任何数据。在这种情况下,返回的数组将具有0的LBound和-1的UBound。
定界符可选的。字符串字符,用于标识子字符串限制。如果省略,则假定空格字符(“”)为定界符。如果定界符是零长度的字符串,则返回包含整个表达式字符串的单元素数组。
限制可选的。要返回的子字符串数;-1表示返回所有子字符串。
比较可选的。数值,指示评估子字符串时要使用的比较类型。有关值,请参见“设置”部分。

设定值

比较参数可以有以下值:

不变描述
描述-1使用Option Compare语句的设置执行比较
vbBinaryCompare0执行二进制比较。
vbTextCompare1执行文本比较。
vbDatabaseCompare2仅Microsoft Access。根据数据库中的信息执行比较。

在此示例中,通过显示几种样式演示了Split是如何工作的。注释将显示每个执行的拆分选项的结果集。最后,演示了如何循环返回的字符串数组。

Sub Test
    
    Dim textArray() as String

    textArray = Split("Tech on the Net")
    'Result: {"Tech", "on", "the", "Net"}

    textArray = Split("172.23.56.4", ".")
    'Result: {"172", "23", "56", "4"}

    textArray = Split("A;B;C;D", ";")
    'Result: {"A", "B", "C", "D"}

    textArray = Split("A;B;C;D", ";", 1)
    'Result: {"A;B;C;D"}

    textArray = Split("A;B;C;D", ";", 2)
    'Result: {"A", "B;C;D"}

    textArray = Split("A;B;C;D", ";", 3)
    'Result: {"A", "B", "C;D"}

    textArray = Split("A;B;C;D", ";", 4)
    'Result: {"A", "B", "C", "D"}

    'You can iterate over the created array
    Dim counter As Long

    For counter = LBound(textArray) To UBound(textArray)
       Debug.PrinttextArray(counter)
    Next
 End Sub