722 发表于 2007-10-24 15:49:03

如果复选框是选中函数


承认,我不太擅长编写函数;实际上我很糟糕
但是,我们需要一次取消选中表单中的所有复选框,所以不是一个接一个地执行每个复选框,
我设法编写了这段代码:
Dim Ctrl As Control
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is CheckBox Then
    Ctrl.Value = False
End If
Next Ctrl

现在,意识到我可能会在这个项目中多次使用它,我认为尝试为此编写一个小函数可能是个好主意。
这是我的第一次尝试
Private Function IsCheckBoxChecked(ByRef Checkbox As Control) As Boolean
Dim Ctrl As Control
   For Each Ctrl In Me.Controls
    If TypeOf Ctrl Is Checkbox Then
   IsCheckBoxChecked = True
    Exit Function
    End If
   Next Ctrl
    IsCheckBoxChecked = False
End Function

我不确定这是否写得正确???
如果没有,有人能帮我吗?
另外,我如何在潜艇中调用它??
谢谢
马克
**** Hidden Message *****

撒旦恶魔 发表于 2007-10-24 15:56:55

首先,我会让它成为一个子而不是一个函数 - 只是因为我试图坚持subs不返回值,函数这样做。 既然你只是在做某事,而不是寻找答案,我会使用一个sub.
现在在代码上,你是否试图通过调用它来清除值? 如果是这样,我会只使用你首先发布的内容添加到子声明
Private Sub Uncheck()
Dim Ctrl As Control
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is CheckBox Then
    Ctrl.Value = False
End If
Next Ctrl
End Sub

我没有测试这个,但是如果它适用于你的其他形式,它应该工作

粉红情书 发表于 2007-10-24 15:57:47

至于从另一个子子调用它,
Call Uncheck

丑女 发表于 2007-10-24 16:00:00


嘿CM
我可以使用那个代码20次,但我宁愿打电话给潜艇。
我想我可以做一个单独的子,然后说
RunMacro(“Uncheck All”)
谢谢
马克

贝小姐 发表于 2007-10-24 16:00:50

我会将未选中的sub设为私有,以便对外界“隐藏”它。(不是你不想让任何人知道,只是你不能从命令行调用它)

东健影视 发表于 2007-10-24 16:02:04

或者从按钮代码
Button1 click事件可能触发取消选中,然后执行其他操作,有点像重置表单按钮
页: [1]
查看完整版本: 如果复选框是选中函数