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)
这是一个可能有用的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
在调用代码回路.