键入得分自动转换相应等级

  • 来源:PC电脑王
  • 关键字:
  • 发布时间:2014-09-09 08:38

  同事提出一个要求,他希望在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万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: