我目前正在构建一个 Excel 2003 应用程序,该应用程序需要非常复杂的表单,并且担心控件数量的限制。目前它有 154 个控件(使用Me.Controls.Count
- 这应该是准确的,对吧?)但可能只完成了大约三分之一。工作流程确实适合单一表单,但我想如果确实需要的话我可以将其拆分。
我在 Google 搜索中看到证据表明 VB6(通常包括 VBA)对表单中的控件有 254 个硬性限制。然而,我创建了一个包含超过 1200 个控件的虚拟表单,这些控件仍然可以加载并且看起来工作得很好。
不过,在尝试添加特定的控件组合(例如 800 个按钮和 150 个标签)时,我确实遇到了一些“内存不足”错误,这使我认为任何限制都可能受到每种控件类型的内存要求的影响。
有谁有任何信息可以帮助确保我,或更重要的是,具有不同环境的其他用户不会遇到如此大的表单的任何内存问题?
大多数 MSForms 控件都是无窗口的(因为它们不是真正的窗口,而是由 VBA Forms 引擎直接绘制为图形对象),相比之下,它们是“轻量级”的。这意味着与在 VB6 窗体上使用等效的非 MSForms 控件相比,您可以将更多内容转储到用户窗体上。
我不知道上限是多少,但它要么是绝对限制,要么是可用资源施加的限制,因此,如果您可以添加 1,200 而不会遇到其中任何一个,并且 excel 在内存使用方面表现良好,那么您应该没事吧。
也就是说,一次性呈现给用户的控件数量似乎仍然太多了!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)