ScottBolton 发表于 2013-4-3 14:48:06

VBA 用户窗体中的“(foreach”等效项?

有一个吗?
我有20个选项按钮-OP01,OP02... OP20-我想禁用它们。有没有办法不使用:
OP01.Enabled=False
OP02.Enabled=False
...
OP20.Enabled=False
S
**** Hidden Message *****

Matt__W 发表于 2013-4-3 15:33:10

选择所有选项按钮,然后在“属性”窗口中找到 GROUPNAME 属性。 给它一个值(在下面的示例中,我称之为“按钮”)。 下面的代码将禁用其 GroupName 属性等于“按钮”的所有 OptionButton, Dim x As OptionButton。
对于“我”中的每个 x.控件。
如果 x.GroupName = “Buttons” 则。
x.已启用 = 假。
如果结束。
下一页 x。

ScottBolton 发表于 2013-4-3 16:31:46

马特,感谢您的快速回复。代码看起来不错(而且很简单),但我在“For Each”行上得到了一个类型不匹配。任何想法为什么?我是这样使用它的:Private Sub SizeBIG_Click()。
Dim x As OptionButton。
对于“我”中的每个 x.控件。
如果 x.GroupName = “Buttons” 则。
x.已启用 = 假。
如果结束。
下一页 x。
继续.设置焦点。
结束子S。

Matt__W 发表于 2013-4-3 16:51:34

尝试注释出“继续”。设置聚焦线,看看会发生什么。

ScottBolton 发表于 2013-4-3 16:58:18

同样的事情。

ScottBolton 发表于 2013-4-3 17:08:21

你能上传你的dvb吗?

owenwengerd 发表于 2013-4-3 17:20:45

你给OPs分配组名了吗?我必须给它起个名字

ScottBolton 发表于 2013-4-3 17:21:45

然后,这就起作用了代码0]

ScottBolton 发表于 2013-4-3 17:22:18

下一个问题,这可能无关紧要,但您可以在设计器中抓住它们并设置为false。你想让他们都绑在一起,这样如果你选了一个,其余的都会被禁用吗?是否有多个组?如果是这样,您必须将它们分组在一起,以便第一组中的选择不会妨碍第二组的选择

owenwengerd 发表于 2013-4-3 17:24:52

唷!快速手指。
好,几个回答:
这里有一个简化的dvb。你会看到左边是标准的纸张尺寸。在右边我有额外的尺寸。
我的想法是,如果我更改标准尺寸,最初会禁用附加尺寸,然后只启用与该标准尺寸相关的尺寸。目前只有几个附加按钮被归入“buttons”中,只有SizeA2对每个按钮进行了测试。
因此,我可以在设计器中将所有内容都设置为禁用,但是当标准大小发生变化时,我仍然需要一个quickie。目前只有一个小组,所以没有什么可以干扰。
希望您能够从中收集到一些信息...?
S
页: [1] 2
查看完整版本: VBA 用户窗体中的“(foreach”等效项?