设置自定义格式设置自定义格式:'很棒,你答对了';;'继续努力,不对哦!'这里简单解释下看中间分号,把这个内容分成三部分,第一个表示正数的时候显示内容,第二个负数,第三个部分表示0时候我会用程序判断回答的对不对,对的就会写个1,错误写0,就对应显示结果
做个条件格式先设置图标然后去条件格式里改一下,百分比改为数值
代码部分直接给代码这个代码是新建模块复制的Dim startime As Date '计时程序的公共变量Sub suiji() '随机程序 Dim i As Long Dim sj1 As Integer, sj2 As Integer, ssFH As String Range('c6:g15').ClearContents '清空内容 For i = 6 To 15 '利用内置函数获得2个随机数 sj1 = Application.RandBetween(1, Range('g3').Value) sj2 = Application.RandBetween(1, Range('g3').Value) '如果是减号的时候,为了照顾孩子,不会做负数,随机1不能小于随机2 ssFH = Cells(3, Application.RandBetween(2, 5)).Value If ssFH = '-' Then If sj1 < sj2 Then '如果小的时候,就重新随机直到大于等于的时候 Do While sj1 < sj2 sj1 = Application.RandBetween(1, Range('g3').Value) sj2 = Application.RandBetween(1, Range('g3').Value) Loop End If End If Cells(i, 'C').Value = sj1 & ssFH & sj2 Next Range('d6').Select '开始答题的地方End SubSub jishigongneng() Dim sp As Shape Range('d6').Select '开始答题的地方 '定义把点击按钮定义一个变量 Set sp = ActiveSheet.Shapes(Application.Caller) '判断按钮的显示内容,是开始答题的时候 If sp.DrawingObject.Text = '开始答题' Then Range('i6').ClearContents '清空计时 '名字改为结束答题 sp.DrawingObject.Text = '结束答题' Call start '调用开始计时程序 Else '按钮显示的内容不是开始答题的时候 '名字改为开始答题 sp.DrawingObject.Text = '开始答题' '调用结束计时程序 Call killontime End IfEnd Sub'开始计时程序Private Sub start() '公共变量等于现在的时间+1秒 startime = Now() + TimeValue('00:00:01') '到实际执行jishi程序 Application.OnTime startime, 'jishi'End Sub'计时程序,每秒钟写时间计入i6单元格Private Sub jishi() '自己不断的加一秒钟时间 Range('i6').Value = Range('i6').Value + TimeValue('00:00:01') Call start '又回头调用start程序,形成一个反复调用的程序End Sub'结束计时程序Private Sub killontime() Application.OnTime startime, 'jishi', , False
使用说明:1,按快捷键ALT+F11打开vbe编辑界面2,点击右键插入
复制上面代码,到这个模块里
下面这个代码是在工作表所在地方复制Option ExplicitPrivate Sub Worksheet_Change(ByVal Target As Range) '判断如果是多个单元格改变,就退出 If Target.Rows.Count > 1 Then Exit Sub If Target.Columns.Count > 1 Then Exit Sub '如果行号小于等于5的时候退出 If Target.Row <= 5 Then Exit Sub '如果列号不等于4的时候退出 If Target.Column <> 4 Then Exit Sub '关闭事件,防止反复调用 Application.EnableEvents = False On Error GoTo Flag '如果发生错误调转到Flag标签处 If Target.Value <> '' Then '判断下写的值不能是空白 '如果结果是正确的时候 If Evaluate(Target.Offset(0, -1).Value) = Target.Value Then Target.Offset(0, 1).Value = 1 '右边单元格写1 Else '错误的时候就写0 Target.Offset(0, 1).Value = 0 End If Else '如果结果是空白的时候 '右边就显示空白 Target.Offset(0, 1).Value = '' End IfFlag: '调转的标签处 '重新打开事件 Application.EnableEvents = TrueEnd Sub
点击电脑标签页,右键,查看代码
把上面代码复制到这里就好了
个人建议----我们这里用到了几个知识点1,条件格式的使用2,自定义格式3,vba编程,如果不会,起码要会自己复制黏贴