广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    Excel:数学题生成器

    来源:网络收集  点击:  时间:2024-09-02
    【导读】:
    随手做个数学题生成器,让她可以刷一天数学题,上面符号可以设置+-*/随便,只要是电脑认的计算符号就可以,如果孩子想只能做加减法,可以根据自己情况,比如加法想多一些,就写三个+一个减法,可以设定最大的随机数,比如想设置个位的就写9。方法/步骤1/10分步阅读

    按照我这个格式,先画框架出来

    2/10

    设置自定义格式

    设置自定义格式:很棒,你答对了;;继续努力,不对哦!

    这里简单解释下看中间分号,把这个内容分成三部分,第一个表示正数的时候显示内容,第二个负数,第三个部分表示0时候

    我会用程序判断回答的对不对,对的就会写个1,错误写0,就对应显示结果

    3/10

    做个条件格式

    先设置图标

    然后去条件格式里改一下,百分比改为数值

    4/10

    代码部分直接给代码

    这个代码是新建模块复制的

    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 Sub

    Sub 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 If

    End 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

    5/10

    使用说明:

    1,按快捷键ALT+F11打开vbe编辑界面

    2,点击右键插入

    6/10

    复制上面代码,到这个模块里

    7/10

    下面这个代码是在工作表所在地方复制

    Option Explicit

    Private 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 If

    Flag: 调转的标签处

    重新打开事件

    Application.EnableEvents = True

    End Sub

    8/10

    点击电脑标签页,右键,查看代码

    9/10

    把上面代码复制到这里就好了

    10/10

    个人建议----我们这里用到了几个知识点

    1,条件格式的使用

    2,自定义格式

    3,vba编程,如果不会,起码要会自己复制黏贴

    EXCEL生成器数学题生成器EXCELEXCEL表格
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_1185100.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 07:12:29  耗时:0.025
    0.0254s