English 中文(简体)
一种VBA形式的控制的最大数量是怎样的?
原标题:What is the maximum number of controls that a VBA form can hold?

目前,我建造了2003年Excel,需要一种非常复杂的形式,并对控制数量的限制感到担忧。 目前,它有154项控制(使用<代码>Me.Controls.Count——这应当是准确的,正确吗?),但可能只是大约三分之一。 工作流程确实适合单一形式,但我猜测,如果我确实需要的话,我可以分开。

在谷歌搜索中,我看到证据表明,VB6(通常包括VBA)的严格控制形式为254个。 然而,我制造了一个my形,控制着1 200多条,这些控制仍然装满,似乎只是罚款。

在试图增加具体控制组合时,我确实发现一些记忆错误,虽然说有800个县和150个标签,但我想,任何限制都可能受到每一种控制记忆要求的影响。

是否有任何信息可以帮助确保我或更重要的是,环境不同的其他用户不会陷入任何具有如此大的记忆问题?

最佳回答

大多数管理用产品控制都是没有窗口的(例如,它们不是真正的窗口,而是直接由VBA表格发动机作为图形物体提取),相比之下,后者是“轻重”的。 这意味着,你可以更多地向用户倾销,而不是使用对VB6表格的等效的非MSForms控制。

我不知道上限是什么,但是,这要么是绝对限制,要么是现有资源施加的限制,这样,如果你能够增加1 200个,而不会碰到其中的任何一个。

尽管如此,这种控制的数量似乎仍然很多,可以一劳永逸地向用户提出!

问题回答

表格控制的最大数量没有硬性限制。 如另一个答复所述,这将会根据你的硬件、Excel版本和操作系统而有所不同。

令人痛心的是,我在建立控制太多的“传统”表格方面经验太多。

我可以说,一旦你超过大约200个控制点,你就可以开始发现一些奇怪/偶然的事件/事件。

我完全通过审判和错误发现的一件事是,通常用来控制无线电塔顿集团的支离破碎控制似乎造成的问题比任何其他控制都多。 如果我制造表格而没有任何碎片控制,我就可以在陷入麻烦之前更多地控制这种形式。

我发现,无论你需要多少控制,他们通常可以分为不同的群体。 如果某个特定群体或类别将包含十几个以上的控制(包括标签),那么,对于这一类别而言,几乎总是比较容易加宽,从而形成一种子形。 这确实有助于减少主要形式的复杂性。

No hard n soft rule...


There is no definite number of controls that VBA will limit you to.
It is entirely dependent on the system you run it on.

作为一般规则:

  • Reduce the number of controls.
  • Use grid controls instead of arrays of buttons.
  • Split it into logical forms for further simplicity.
  • Use lightweight controls (handle-less controls) as they consume less memory.

除此之外,如果你仍在对屏幕(如你说是)进行100多次控制,那么你就为该项目聘用了一名新的“国际律师”。

亲善!

PS: Do try and split the form up, if possible.
I can t imagine using any software that throws up 154 controls in one screen.
(MS-WORD comes pretty close ;-) )


<><>UPDATE: 下面请你参考的一些内容......

我试图远离这种大的用户。 我更希望利用电子表格处理这一大事物的数据收集工作。 如果是受抚养人,那么我会在必要时隐藏/un,或使用多张。 我认为这是一个比较容易的解决办法(有时是)。





相关问题
import of excel in SQL imports NULL lines

I have a stored procedure that imports differently formatted workbooks into a database table, does work on them then drops the table. Here is the populating query. SELECT IDENTITY(INT,1,1) AS ID ...

Connecting to Oracle 10g with ODBC from Excel VBA

The following code works. the connection opens fine but recordset.recordCount always returns -1 when there is data in the table. ANd If I try to call any methods/properties on recordset it crashes ...

Excel date to Unix timestamp

Does anyone know how to convert an Excel date to a correct Unix timestamp?

C# GemBox Excel Import Error

I am trying to import an excel file into a data table using GemBox and I keep getting this error: Invalid data value when extracting to DataTable at SourceRowIndex: 1, and SourceColumnIndex: 1. As ...

Importing from excel "applications" using SSIS

I am looking for any tips or resources on importing from excel into a SQL database, but specifically when the information is NOT in column and row format. I am currently doing some pre-development ...

热门标签