向Collection添加自定义类导致64位Excel卡顿冻结求助
64位Excel中Collection批量添加自定义对象的性能问题
仅在64位Excel环境(版本为Microsoft® Excel® for Microsoft 365 MSO (Version 2209 Build 16.0.15629.20200) 64-bit)中出现性能异常,32位Excel下相同代码运行流畅且速度极快。当向Collection中添加大量包含多类型变量的自定义对象时,Excel运行极慢甚至直接冻结,已将问题定位至以下代码:
VBA 过程代码
Sub largeCollection() Dim myCollection As New Collection Dim I As Long Dim aClass1 As Class1 For I = 2 To 10000 If I Mod 100 = 0 Then Debug.Print "iteration: " & I End If Set aClass1 = New Class1 aClass1.d1 = I aClass1.d2 = I aClass1.d3 = I aClass1.d4 = I aClass1.d5 = I aClass1.d6 = I aClass1.d7 = I aClass1.d8 = I aClass1.d9 = I aClass1.d10 = I aClass1.i1 = I aClass1.i2 = I aClass1.i3 = I aClass1.i4 = I aClass1.i5 = I aClass1.i6 = I aClass1.i7 = I aClass1.i8 = I aClass1.i9 = I aClass1.i10 = I myCollection.Add aClass1 Next I End Sub
自定义类「Class1」代码
Option Explicit Public s1 As String Public s2 As String Public s3 As String Public s4 As String Public s5 As String Public s6 As String Public s7 As String Public s8 As String Public s9 As String Public s10 As String Public s11 As String Public s12 As String Public s13 As String Public s14 As String Public s15 As String Public s16 As String Public s17 As String Public s18 As String Public s19 As String Public s20 As String Public v1 As Variant Public v2 As Variant Public v3 As Variant Public v4 As Variant Public v5 As Variant Public v6 As Variant Public v7 As Variant Public v8 As Variant Public v9 As Variant Public v10 As Variant Public i1 As Integer Public i2 As Integer Public i3 As Integer Public i4 As Integer Public i5 As Integer Public i6 As Integer Public i7 As Integer Public i8 As Integer Public i9 As Integer Public i10 As Integer Public d1 As Double Public d2 As Double Public d3 As Double Public d4 As Double Public d5 As Double Public d6 As Double Public d7 As Double Public d8 As Double Public d9 As Double Public d10 As Double
目前已穷尽思路,恳请各位提供可行的解决方案。
内容的提问来源于stack exchange,提问作者Dennis van den Berg
相关产品推荐
相关产品推荐

