Ricky_76 发表于 2006-6-29 19:09:17

关于control.name的愚蠢问题

嗨,tnx 4你的时间!
我有一个小问题!
我需要动态引用一些控件,让我们检查一下示例!
我有 3 个禁用的组合框(cb_1、cb_2、cb_3)需要重新启用!
dim i as integer
for i = 1 to 3
[“cb_” & i].enabled = true
接下来
我知道在 Flash 中,你可以简单地使用 “” 来引用一个控件。在 VB 和 VBA 中也可以做一些 wai???
实际上,我使用:
dim s 作为字符串
dim ctr
作为控件,用于 i = 1 到 3
s=“cb:_” & i
对于 me 中的每个 ctr.controls
如果 ctr.name=s 则
ctr.enabled = true
goto cont
end if
next
cont:
next
let me know!!!!
**** Hidden Message *****

Bryco 发表于 2006-6-29 19:30:07

听起来不错,你有什么问题吗?

Ricky_76 发表于 2006-6-29 19:35:40


你好,Bryco,
它工作得很好,但我需要使用12行代码,而不是4行
在许多其他情况下(我报告的示例只是一个简单的问题),我非常需要这个“函数”!

Jeff_M 发表于 2006-6-29 20:07:53

嗯,这里有一个较短的版本….
Dim i As Integer
Dim ctl As ComboBox
For i = 1 To 3
    Set ctl = Me.Controls.Item("cb_" & i)
    ctl.Enabled = True
Next

Kerry 发表于 2006-6-29 22:48:38

不够好,杰夫……那是6行

Bryco 发表于 2006-6-29 23:03:19

4<br>函数ControlOn(sName作为字符串)作为布尔值<br>Me.Controls.Item(sName)。已启用=真<br>控制ON=真<br>结束函数

Ricky_76 发表于 2006-6-30 03:25:29


tnx Jeff,我已经测试了您的解决方案,但它无法正常工作,也许它可以在.net中工作,而不是在VBA中工作!
我稍后会再次测试它。

Ricky_76 发表于 2006-6-30 03:26:59


嗨Bryco,
太好了,它工作正常!TNX很多!

Jeff_M 发表于 2006-6-30 10:38:06


[蜂鸣器]
错!
它是一个函数,你需要一行来调用它,所以它是5而不是4

Ricky_76 发表于 2006-6-30 12:08:27

仅供参考,我只在VBA中进行了测试.....它对我来说工作得很好。但我更喜欢Bryco的函数。
页: [1] 2
查看完整版本: 关于control.name的愚蠢问题