|
楼主 |
发表于 2018-6-27 11:05
|
显示全部楼层
下面再讲一个StringBuilder类。这个玩意主要应用于大量字符串的拼接。我们在vba中连接字符串都是通过+或者&连接起来。String 是不可变的,在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象。如果有大量字符串操作,这么做肯定是很消耗内存的.并且效率低下
所以,StringBuilder出现了.
下面我先讲一下VBA里使用.net里面的StringBuilder.利用CreateObject("System.Text.StringBuilder")创建stringbuilder对象。做一个简单的代码演示一下:
Sub stringbuilder() '调用.net里的stringbuilder
Dim s As Object, arr, i%
Set s = CreateObject("System.Text.StringBuilder")
arr = Array("f", "hj", "123", "bnm", "sdf")
For i = 0 To UBound(arr)
s.append_3 arr(i)
Next
MsgBox s.tostring '输出为字符串
MsgBox s.Length '字符串长度
End Sub
然后我们再看一下vbrichclient里的演示示例:
Sub cstringbuilder() 'vbrichclient里使用
Dim Rootpath As String, SB As Object
Rootpath = ThisWorkbook.Path & "\"
LoadLibraryW StrPtr(Rootpath & "DirectCOM.dll") '加载库
Set SB = GetInstanceEx(StrPtr(Rootpath & "vbRichClient5.dll"), StrPtr("cStringBuilder"), True) '免注册初始化实例
arr = Array("f", "hj", "123", "bnm", "sdf")
For i = 0 To UBound(arr)
SB.append CStr(arr(i))
Next
MsgBox SB.tostring '输出为字符串
MsgBox SB.Length '字符串长度
End Sub |
评分
-
2
查看全部评分
-
|