You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 21:20:37