我一直在尝试使用类模块开发一个宏,但是与UDT相比,get/let似乎需要很长时间.我真的很感兴趣为什么会这样,有人可以解释一下吗?我只发现了讨论功能/子执行的讨论,这似乎同样快.
目前的问题是设置一个属性,该类需要大约3000毫秒(200万次)和120毫秒使用UDT进行相同操作.
我正在尝试决定是否应该建议宏开发人员在需要获取或设置大量属性时避免使用类模块.只使用这个作为我应该的数据,但也许你有不同的见解.
我想明白为什么这么慢.也许我只是做错了什么.
示例代码:
Public Type Participant
Name As String
Gender As Integer
End Type
Public Declare Function GetTickCount Lib "kernel32.dll" () As Long
Sub TimeUDT()
Dim i As Long
Dim startMs As Long
startMs = GetTickCount
Dim participants(1 To 1000000) As Participant
For i = 1 To 1000000
participants(i).Name = "TestName"
participants(i).Gender = 1
Next
Debug.Print GetTickCount - startMs
End Sub
Sub TimeCls()
Dim i As Long
Dim startMs As Long
Dim participants(1 To 1000000) As New clsParticipant …Run Code Online (Sandbox Code Playgroud)