'接上贴 '表达式1、表达式2的比较 If V_Fc_1 > V_Fc_2 Then t_V_Fc_a = V_Fc_2 t_V_Fc_b = V_Fc_1 Else t_V_Fc_a = V_Fc_1 t_V_Fc_b = V_Fc_2 End If Else '操作符序号大于2的情况 t_V_Fc_a = V_Fc_1 If t_Rng_Val < V_Fc_1 Then '单元格值小于条件格式的设置的值,即条件成立的情况 ans = True Con = i Exit For End If End If '单元格值、条件格式表达式1、条件格式表达式2的返回值:为文本时,将小写英文字符转换为大写英文字符 If Application.WorksheetFunction.IsText(t_Rng_Val) Then t_Rng_Val = """" & UCase(t_Rng_Val) & """" If Application.WorksheetFunction.IsText(t_V_Fc_a) Then t_V_Fc_a = """" & UCase(t_V_Fc_a) & """" If Application.WorksheetFunction.IsText(t_V_Fc_b) Then t_V_Fc_b = """" & UCase(t_V_Fc_b) & """" '返回s_Str字符串中的操作符为:可转换一个对象或者一个值做替换操作 s_Strs = s_Operator(Operator_sTr) s_Str = Replace(s_Strs, "For1", t_V_Fc_a) s_Str = Replace(s_Str, "For2", t_V_Fc_b) s_Str = Replace(s_Str, "vCell", t_Rng_Val) '将s_Str 转换为值出现错误时 If Application.WorksheetFunction.IsError(Application.Evaluate(s_Str)) Then Else '转换成功。则条件格式成立 ans = Application.Evaluate(s_Str) End If Else '条件格式为公式 If Application.WorksheetFunction.IsError(Application.Evaluate(.FormatConditions(i).Formula1)) Then Else ans = Application.Evaluate(.FormatConditions(i).Formula1) Con = i End If End If End With Next If Con > 0 Then Set s1 = t_Rng.FormatConditions(Con).Font '条件格式中设置的字体 Set s2 = t_Rng.FormatConditions(Con).Interior '条件格式中设置的单元格内部 Set s3 = t_Rng.FormatConditions(Con).Borders '条件格式中设置的单元格边框 With t_Rng.Font '条件格式成立的单元格字体 .Bold = s1.Bold '加粗 .Italic = s1.Italic '斜体 .Underline = s1.Underline '下划线 .Strikethrough = s1.Strikethrough '删除线 .ColorIndex = s1.ColorIndex '字体颜色索引号 End With With t_Rng .Interior.ColorIndex = s2.ColorIndex '单元格内部颜色索引号 .Interior.Pattern = s2.Pattern '单元格内部图案 .Interior.PatternColorIndex = s2.PatternColorIndex '单元格内部图案颜色索引号 .Borders.LineStyle = s3.LineStyle '单元格边框线类型 .Borders.ColorIndex = s3.ColorIndex '单元格边框线颜色索引号 .Borders.Weight = s3.Weight '边框线宽度(粗细) .FormatConditions.Delete '删除条件格式 End With End If End If Next Application.ScreenUpdating = False End Sub (备注:本过程参考修订了:http://www.vbeach.net/bbs/archiver/?tid-6471.html处的代码) 效果如下图演示:
本帖的程序测试在Excel2003下通过。引用的帮助内容出自Excel2003VBA中。希望本帖起到资料或者工具的作用,既方便自己的快速查阅,也方便了有此需求的朋友。 [em05][em10][em10][em10] |