生成n套数位加减乘除_Excel自动出题,加减乘除随意设置,让您的孩子赢在起跑线!...

本工具为解决家长辅导孩子四则运算时出题难题而设计,支持Excel自动出题并判断对错,适用于Microsoft Office各版本,提供传统型和自由型题目设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好,我是菜刀小鱼,最近看网上有些家长辅导上小学的孩子,关于四则运算总遇到出题难的问题,我特意设计了一款Excel自动出题的工具,只需简单设置条件,秒出题(可打印),电脑做的话还可以秒出对错,具体介绍如下:

要求:使用Microsoft office任意版本,允许宏运行,WPS不支持VBA.

文件结构:本文件包含3张工作表:条件设置,习题,如何使用:

147b23e9c8d44a3c5892c2986e53119c.png

结构

fbec5fb14396b7441b2f2485335165c2.png

条件设置

条件设置

加减乘除运算自由勾选,

运算对应的数据范围精确设置,

题目一行4题,设置行数,

出题类型包含传统型和自由型,

传统型例如1+1=? 5*6=?

自由型例如1+?=5 ?*5=30 60/15=?随机出现

设置完成点击出题,自动生成符合设定的题目,跳转到习题界面:

6dbcc9edb823b5fe9ea81a53174893d7.png

做题界面

习题

习题界面包含四个按钮,开始 结束 重新出题 打印模式

电脑答题使用方法:题目生成以后,点击开始,解锁空格,填入答案,做完后点击结束,习题自动判断对错及完成时间(**分**秒):

b7cc0bc6a244cb8c29ce0558cb2fcb6d.png

结束答题

结束答题

打印模式使用:

1 打印空白页:题目生成以后,点击打印模式,系统自动去除表格颜色并设置好打印区域,此时系统解锁所有区域,用户可以更改小朋友的姓名及表头等,之后点击打印即可:

a9466670c671372c85fd5f211185f58e.png

打印1

打印模式1

2 打印错题:小朋友在电脑上完成作业以后,点击完成,系统判断对错,再点击打印模式,家长可以针对性的给小朋友讲解为什么错,界面如下:

d9e82e0f0f8f37e3b7e8353c30a568a8.png

打印2

打印错题模式

重新出题:任何时候点击重新出题,系统会根据条件设置中的设置生成一套新的试题.

使用说明中有一些使用方法的介绍

原创不易,谢谢支持

有需要的朋友可以关注并私信我哈,无偿提供源文件!!!!!!!!!!!

部分代码如下:

Sub runwhole() '出题

With Sheet2

Application.ScreenUpdating = False

.Unprotect Password:="123456"

.Cells.Locked = True

.Cells.Borders().LineStyle = xlNone

.Cells.Interior.ColorIndex = xlNone

.Range("O3") = ""

.Range("U3") = ""

.Range("J3") = ""

Call check

Call getvalue

.Range("A5:A" & 5 + rows - 1).Interior.ColorIndex = 5

.Range("G5:G" & 5 + rows - 1).Interior.ColorIndex = 5

.Range("M5:M" & 5 + rows - 1).Interior.ColorIndex = 5

.Range("S5:S" & 5 + rows - 1).Interior.ColorIndex = 5

.Range("Y5:Y" & 5 + rows - 1).Interior.ColorIndex = 5

.Range("A4:Y4").Interior.ColorIndex = 5

.Range("A" & rows + 5 & ":Y" & rows + 5).Interior.ColorIndex = 5

Dim i, ii, k As Integer

If Not valueok Then Exit Sub

.rows(5).Resize(99999).ClearContents

For ii = 5 To 5 + rows - 1

Call runonce(Val(ii))

Next ii

'-----------------------------------------------------------------------生成数据

If kind = "传统型" Then

Sheet2.Range("F5:G" & 5 + rows - 1).ClearContents

Sheet2.Range("L5:M" & 5 + rows - 1).ClearContents

Sheet2.Range("R5:S" & 5 + rows - 1).ClearContents

Sheet2.Range("X5:Y" & 5 + rows - 1).ClearContents

Sheet2.Activate

End If

If kind = "自由型" Then

For i = 5 To 5 + rows - 1

k = Round(Application.RandBetween(0.6, 3.4))

Select Case k

Case 1

.Range("B" & i).ClearContents

Case 2

.Range("D" & i).ClearContents

Case 3

.Range("F" & i).ClearContents

End Select

k = Round(Application.RandBetween(0.6, 3.4))

Select Case k

Case 1

.Range("H" & i).ClearContents

Case 2

.Range("J" & i).ClearContents

Case 3

.Range("L" & i).ClearContents

End Select

k = Round(Application.RandBetween(0.6, 3.4))

Select Case k

Case 1

.Range("N" & i).ClearContents

Case 2

.Range("P" & i).ClearContents

Case 3

.Range("R" & i).ClearContents

End Select

k = Round(Application.RandBetween(0.6, 3.4))

Select Case k

Case 1

.Range("T" & i).ClearContents

Case 2

.Range("V" & i).ClearContents

Case 3

.Range("X" & i).ClearContents

End Select

Next i

Sheet2.Activate

End If

'-------------------------------------------------------------------------隐藏部分单元格

' .Cells.Locked = True

Dim rngg, rng1 As Range

Set rngg = Union(.Range("B5:F" & 4 + rows), .Range("H5:L" & 4 + rows), .Range("N5:R" & 4 + rows), .Range("T5:X" & 4 + rows))

For Each rng1 In rngg

If rng1.Value = "" Then '加一个边框,解除保护

rng1.Locked = False

rng1.Interior.ColorIndex = 4

With rng1.Borders()

.LineStyle = xlContinuous

.ColorIndex = 0

.TintAndShade = 0

.Weight = xlThin

End With

End If

Next

.Protect Password:="123456

private void Save2Excel() { //string file = "F:\\11\\ck.xlsx"; //string path = "F:\\11\\excel\\"; string time = DateTime.Now.ToString("yyyyMMdd"); string file = System.Windows.Forms.Application.StartupPath + "\\ck.xlsx"; string path = System.Windows.Forms.Application.StartupPath + "\\excel\\"; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } string saveName1 = path + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx"; excel = new CCExcel(file,saveName1); excel.Exceldata(); } private void textBox1_TextChanged(object sender, EventArgs e) { Form1.name = textBox1.Text.ToString(); } private void Form1_Load(object sender, EventArgs e) { comboBox1.Text = 11.ToString(); comboBox2.Text = 100.ToString(); } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { Form1.comB1 = comboBox1.Text.ToString(); } private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) { Form1.comB2 = comboBox2.Text.ToString(); } } public class CCExcel { public Excel.Application appExcel; public Excel.Workbooks wbs; public Excel.Workbook wb; public Excel.Worksheets wss; public Excel.Worksheet ws; private string fileName; private string saveName; public CCExcel(string fileName,string saveName) { // //TODO: 在此处添加构造函数逻辑 // this.fileName = fileName; this.saveName = saveName; } public void Exceldata() { Create(); //Open(fileName); Data2Excel(); Save(saveName); //Save(wb,saveName); //appExcel.ActiveWorkbook.SaveCopyAs(fileName); //判断当前激活的表,并保存这个表。否则,保存时会弹出“是否保存Sheet1.xlsx”的对话框 wb.Close(Type.Missing, Type.Missing, Type.Missing); wbs.Close(); appExcel.Quit(); wb = null; wbs = null; appExcel = null; GC.Collect(); } private void Create()//创建一个Excel对象 { appExcel = new Excel.Application(); wbs = appExcel.Workbooks; wb = wbs.Add(true); //ws = (Excel.Worksheet)wb.ActiveSheet;//这是一个只读sheets集合 //Excel.Worksheet worksheet = wb.ActiveSheet as Excel.Worksheet;//这也是一个只读sheets集合 //Excel.Worksheet ws = (Worksheet)wb.Worksheets[1];//创建工作页sheet单页 ws = wb.Worksheets[1] as Worksheet; //第一个sheet页 ws.Name = "ck"; //这里修改sheet名称 } public void Open(string fileName) { appExcel = new Excel.Application(); wbs = appExcel.Workbooks; wb = wbs.Add(fileName); wb = wbs.Open(fileName,Type.Missing,Type.Missing,Type.Missing,Type.Missing, Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing, Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值