【问题标题】:VBA 2D Array Split using multiple delimiter使用多个分隔符的 VBA 2D 数组拆分
【发布时间】:2017-12-14 10:11:53
【问题描述】:

目前我正在尝试使用不同的分隔符将我的文件分解为 2 列表,例如:

-5 Name1, +7 Octopus, -6 Name22, +5 Horse, -7 Name100, +3 Owl

我的最终结果应该是一个 2 列的表,例如:

Name1 章鱼
Name22 马
名称100猫头鹰

到目前为止,我的代码相当简单:

Sub SplitText()

Dim TextString As String, WArray() As String, Counter As Integer, Strng As String

    TextSring = Range("A1").Value
    WArray() = Split(TextString, ",")

    For Counter = LBound(WArray) To UBound(WArray)

        Strng = WArray(Counter)
        Cells(Counter + 2, 1).Value = Trim(Strng)

    NextCounter

End Sub

非常需要您的帮助,谢谢:)

【问题讨论】:

    标签: arrays excel vba 2d delimiter


    【解决方案1】:

    以下代码适用于您提供的字符串。我希望你的真实数据没问题。解释见 cmets。

    Sub SplitText()
    Dim s As String
    Dim v
    Dim i As Long, j As Long
    
    
    s = "-5 Name1, +7 Octopus, -6 Name22, +5 Horse, -7 Name100, +3 Owl"
    
    'let's remove space, pluses and minuses
    s = Replace(Replace(Replace(s, " ", ""), "+", ""), "-", "")
    
    'and cut by commas
    v = Split(s, ",")
    
    For i = 0 To UBound(v)
        If InStr(v(i), "Name") Then
            'remove numbers before names
            v(i) = "Name" & Split(v(i), "Name")(1)
        Else
            For j = 48 To 57
                'remove figures in animals
                v(i) = Replace(v(i), ChrW(j), "")
            Next j
        End If
    Next i
    
    For i = 0 To UBound(v) Step 2
        'see the results
        Debug.Print v(i) & " " & v(i + 1)
    Next i
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多