小编rpe*_*z86的帖子

与访问用户定义类型的字段相比,VBA类模块属性是否较慢?

我一直在尝试使用类模块开发一个宏,但是与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)

excel vba excel-vba

5
推荐指数
1
解决办法
1730
查看次数

标签 统计

excel ×1

excel-vba ×1

vba ×1