For Each ctrl In Me.Controls
If ctrl.ControlType = acComboBox Or ctrl.ControlType = acTextBox Then
If ctrl.BackColor = 255 Then
MsgBox "Fail", vbOKOnly
Exit Sub
End If
End If
Next 作者: todaynew 时间: 2013-9-10 14:35 本帖最后由 todaynew 于 2013-9-12 10:28 编辑
如果还有比较复杂的设置可以按照以下思路进行处理:
Dim ctrl As Control
Dim f As FormatCondition
For Each ctrl In Me.Controls
If ctrl.ControlType = acComboBox Or ctrl.ControlType = acTextBox Then
If ctrl.FormatConditions.Count = 1 Then '设置有一个条件格式的控件
Set f = ctrl.FormatConditions(0) '获取这个条件格式对象
If f.Type = acFieldValue Then '类型为:字段值
Select Case f.Operator '连接符为:等于
Case acEqual
If ctrl.Value = Eval(f.Expression1) Then '判断条件格式中设置的值是否与当前值相等
MsgBox "不合格", vbOKOnly
Exit Sub
End If
'请自行琢磨其他f.Operator的处理方法
End Select
End If
End If
End If
Next作者: ynjxw 时间: 2013-9-10 16:26 http://www.office-cn.net/thread-117399-1-2.html作者: todaynew 时间: 2013-9-10 16:41 本帖最后由 todaynew 于 2013-9-10 16:59 编辑
如果都是这么简单的条件格式,倒是可以这样搞法:
Dim ctrl As Control
Dim f As FormatCondition
For Each ctrl In Me.Controls
If ctrl.ControlType = acComboBox Or ctrl.ControlType = acTextBox Then
If ctrl.FormatConditions.Count = 1 Then '设置有一个条件格式的控件
Set f = ctrl.FormatConditions(0) '获取这个条件格式对象
If ctrl.Value = Eval(f.Expression1) Then '判断条件格式中设置的值是否与当前值相等
MsgBox "不合格", vbOKOnly
Exit Sub
End If
End If
End If
Next作者: todaynew 时间: 2013-9-12 10:39
如果条件格式类型特别多,则枚举各种条件格式的处理方式就不合算,这种情况下可按以下方式处理:
Dim B As Boolean
B = True
B = B And Me.Text0.Value = "良好"
B = B And Me.Text2.Value = "合格"
B = B And Me.Text4.Value = "合格"
If B = False Then
MsgBox "不合格", vbOKOnly
Exit Sub
End If作者: lazybird 时间: 2013-9-13 11:44