同事提出一个要求,他希望在B16:D32、F16:H32、J16:L32区域的任意一个单元格中输入相关得分时能够显示不同的等级,具体等级如下。
<60:显示“待及格”
大于60小于75:显示“及格”
大于75小于85:显示“良好”
≥85:显示“优秀”
这里介绍两种不同的解决方案。
方法一:设置条件格式
对于大部分朋友来说,可以考虑利用条件格式完成上述要求。
第1步:输入公式
首先请选中B16:D32单元格区域,按住Ctrl键依次选择F16:H32、J16:L32单元格区域,依次选择“样式/条件格式/管理规则”,打开“条件格式规则管理器”对话框,单击左上角的“新建规则”按钮,打开“新建格式规则”对话框,选择“使用公式确定要设置格式的单元格”,在这里手工输入公式=B16<60。
第2步:设置格式
单击右下角的“格式”按钮,打开“设置单元格格式”对话框,切换到“数字”选项卡,在分类列表选择“自定义”,在右侧依次输入““不”“及”“格””,注意每个汉字之间使用英文半角的双引号隔开,确认之后,按照类似的方法继续添加其他的公式和格式,请注意必须按照列表中的顺序进行调整,否则会影响最后的等级转换。现在,我们可以在B 1 6 : D 3 2、F16:H32、J16:L32区域的任一单元格输入相应的得分,输入完成之后会自动显示相应的等级。
方法二:借助VBA代码
可能你会觉得前面设置条件格式的步骤过于繁琐,而且也容易出错,我们也可以考虑使用VBA代码解决这一问题:操作的方法很简单,按下“Alt+F11”组合键,打开MicrosoftVisualBasicforApplication编辑器窗口,在左侧列表右击“Sheets(Sheet1)”,选择“查看代码”,此时会自动激活右侧的代码窗格,在这里输入或粘贴如下代码:
Private Sub
Worksheet_Change(ByValTargetAsRange)
If Target.Count > 1 Then ExitSub
If Intersect(Target, Range(“B6:D32,F16:H32,J16:L32”)) Is NothingThen Exit Sub
If Target.Value = ““ Then ExitSub
On Error GoTo 100Application.EnableEvents =False
Select Case Target.Value
Case Is < 60
Target.Value = “待及格”
Case Is < 75
Target.Value = “及格”
Case Is < 85
Target.Value = “良好”
Case 85 To 100
Target.Value = “优秀”
End Select
100
Application.EnableEvents =True
End Sub
上述代码中的“B6:D32,F16:H32,J16:L32”可以根据实际情况进行更改,至于不同得分的等级也可以根据需要自行设置,检查无误之后依次选择“文件/关闭并返回到Microsoft Excel”命令,返回Excel主界面,之后就可以在指定区域直接输入得分,此时会自动转换为相应的等级。
通过本文的介绍,我们可以利用类似的方法实现数值与文本的自动转换,感兴趣的朋友不妨一试。
……
关注读览天下微信,
100万篇深度好文,
等你来看……