VBA打破大字符串

Jab*_*cky 0 excel vba excel-vba

我正在寻找关于将一个非常大的字符串分解成许多小字符串的建议.例如,我有一个5000个字符的字符串.我必须将该字符串拆分为不超过450个字符的连续变量数组.以下是最有效的方法吗?

Dim stringSection() as String

Private Sub extractSubStrings(giantString as String)

    Dim occurance as Integer

    occurance = 0
    For i = 1 to Len(giantString)
        If i Mod 450 = 1 Or i = Len(giantString) Then
            occurance = occurance + 1
            ReDim stringSection(occurance)
            stringSection = Mid(giantString, i-450, 450)
        End If
    Next i

End Sub
Run Code Online (Sandbox Code Playgroud)

Joh*_*man 5

这是一个可能有用的VBA函数:

Function BreakUp(s As String, k As Long) As Variant
    'returns a 0-based variant array of strings of length <= k
    Dim i As Long, m As Long, n As Long
    Dim chunks As Variant
    n = Len(s)
    m = Int(n / k)
    If n - k * m > 0 Then 'leftover chunk at end
        ReDim chunks(0 To m)
    Else
        ReDim chunks(0 To m - 1)
    End If
    For i = 0 To UBound(chunks)
        chunks(i) = Mid(s, 1 + k * i, k)
    Next i
    BreakUp = chunks
End Function
Run Code Online (Sandbox Code Playgroud)

你抢了数组后,那么你可以遍历它,但如果所有你想要做的是叠代则上述功能有过简单的使用没有实际的好处Mid在调用代码回路.