Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

多条件格式

半夜罗  发表于:2019-01-19 09:42:27  
复制

看到了竹笛老师的“用VBA代码实现条件格式示例”,觉得非常实用,但问题是只是一个条件和一个格式,如果需要多个不同的条件,同时显示多个不同的格式,怎么写?比如:完成率小于50%为红色,完成率小于80%为**,完成率100%为绿色,等。虽然用窗体或报表的条件格式能做到,但用VBA代码怎么做?我想请教的就是用VBA代码做的问题。

 

Top
仙来 发表于:2019-01-19 12:46:00
可以用Case函数

半夜罗 发表于:2019-01-19 13:27:43

Private Sub Form_Load()

'sfrChild是子窗体控件的名称,me.sfrChild.Form即代表子窗体
    SetMyFormat Me.sfrChild.Form, "完成率 < 0.8"
End Sub


Function SetMyFormat(frm As Form, tj As String) As Boolean
'修改正王樵民老师示例中的函数
    Dim ctl As Control
    Dim fcd As FormatCondition
    For Each ctl In frm.Controls
    '如果控件是文本框或组合框
        If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Then
            intCount = 0
            '清除条件格式
            ctl.FormatConditions.Delete
            '添加条件格式
            ctl.FormatConditions.Add acExpression, acEqual, tj
            Set fcd = ctl.FormatConditions.Item(intCount)
            '具体的格式显示
            With fcd
                .BackColor = 255    '背景色红色
                .ForeColor = 0    '前景色黑色
            End With
        End If
    Next ctl
    SetMyFormat = True
    Set ctl = Nothing
    Set fcd = Nothing

End Function

这是原代码,请问在哪里修改?想得出上图中的效果。谢谢!



总记录:2篇  页次:1/1 9 1 :