宏技巧集绵,Excel如何做一个自动出题表格

作者: 金沙澳门官网  发布:2019-11-21

问题:想给孩子做叁个机动抽提写拉脱维亚语单词的小程序,便是把富有单词手工业输入Excel,每种单词二个单元格。n当按下有个别键后,自动从题Curry抽取部分单词组成表格,供孩子演练,求大神协理,不胜多谢。

 

回答:

怎么是VBA?它有怎么样坚守?

用Excel做八个机动出题的报表特轻易,上次自家在陪外甥参预他们的词汇比赛在此之前就做了七个大约,即:从生机勃勃各个单词里,随机提取9个单词放入九宫格内,然后给1秒钟的时刻记念……,具体如下:

 A.完成Excel中从不兑现的遵从。

黄金时代、寻思单词表

确实无疑,思量单词表的还要,还足以在Excel里做个互连网的深入分析(这么些公式看起来长,其实正是八个函数而已,当中是一长串的网站卡塔尔国和背诵进程的记录等等,如下图所示:

金沙澳门官网 1

 B.升高运转速度。

二、通过函数达成出题

1、结合RandBetween函数、CountA函数随机拿到单词地点,如下图所示:

金沙澳门官网 2

2、通过Index函数依照随意地方收取单词,如下图所示:

金沙澳门官网 3

本来,你能够将这几个函数组合起来写成叁个公式,也非常简单,本身入手试一下就可以。总来说之,用Excel自动出题并简单,关键是对Excel中常用的函数明白好。

金沙澳门官网 4


金沙澳门官网 5

 C.编写自定义函数。

自家是海洋,微软认证Excel行家,集团签订Power BI顾问

 D.达成自动化功效。

让大家一齐学习,同盟升高!

回答:

您好,看见那一个难点作者很提神,因为刚刚自身做了三个简约的妄动出题的VBA小程序,也是一个VBA小演练,大概对您有援救,因为不能够上传附属类小零部件,只好简要陈述用法。假使须求源文件,能够私信小编。

金沙澳门官网 6

1、新建二个EXCEL工作簿,命名称叫“随机出题”,将率先个办事表命名叫“题库”,新建贰个职业表,命名称为“试卷”。具体方法请参见如上动图。

金沙澳门官网 7

2、在名称叫“题库”的行事表中,A列为编号,B列为斯拉维尼亚语,C列为汉语。将标题对应粘贴进去。在名称叫“试卷”的干活表A1单元格录入“标题”二字作为标题。具体方法请参见如上动图。

金沙澳门官网 8

3、点击→Visual Basic→右键点击插入模块,将上边包车型大巴代码复制进去。具体方法请参见如上动图。

Sub 随机出题()

Dim d As Object, arr, rng As Range, arr1, n As Integer, i As Integer, j As Integer, x As Long

Set d = CreateObject("scripting.dictionary")

x = Application.CountA(Sheets("题库").Range("a:a"))

line1: i = InputBox("请输入大肆出题数量", "出题数量")

If i > x Then

Msg博克斯 ("数量超越标题总的数量" & x & ",请重新输入")

GoTo line1

End If

line2: j = InputBox("请输入狂妄出题类型", "出题类型", "1为罗马尼亚(罗曼ia卡塔 尔(英语:State of Qatar)语,2为中文")

If j <> 1 And j <> 2 Then

MsgBox ("输入内容不相符必要,请重新输入")

GoTo line2

End If

Do

d.Item(Application.RandBetween(1, i)) = ""

Loop Until d.Count = i

ReDim arr(1 To d.Count * 2)

For Each arr1 In d.keys

n = n 1

Set rng = Sheets("题库").Range("a:a").Find(arr1)

arr(n) = n & "、" & rng.Offset(0, j).Value

Next

Rows("2:1048576").Clear

Range("a2").Resize(d.Count * 2, 1) = Application.Transpose(arr)

End Sub

金沙澳门官网 9

4、关闭VBA编辑器,回到名字为“试卷”的专门的学业表,插入猖獗形状作为运行宏的按键,选中形状,右键单击,选取钦点宏就能够。具体方法请参见如上动图。

金沙澳门官网 10

5、将文件另存为后缀名字为.xlsm的格式。具体方法请参见如上动图。

金沙澳门官网 11

6、具体使用格局如上动图。

如需课件源文件,请私信作者o(* ̄︶ ̄*)o

回答:

大家好,小编是@EXCEL实例摄像网址长@迎接关切本身的头条,天天都会分享Excel实战本领!


参照他事他说加以调查一下底下的案例

 E.通过插入窗体做Mini管理软件。

EXCEL版小学数学四则混合运算随机出题模板 小学老师及家长必备神器 录制演示

n

{!-- PGC_VIDEO:{"thumb_url": "2a390002d930ea0a0242", "thumb_height": 358, "group_id": 6434820503055237377, "media_id": 50090367555, "neardup_id": 694872295238498507, "vname": "\u5f55\u5236_2017_06_23_20_13_59_888.mp4", "video_size": {"high": {"h": 478, "subjective_score": 0, "w": 854, "file_size": 5229508}, "ultra": {"h": 718, "subjective_score": 0, "w": 1280, "file_size": 7756124}, "normal": {"h": 358, "subjective_score": 0, "w": 640, "file_size": 4183785}}, "sp": "toutiao", "vposter": "", "vid": "a23dd58cb99a454daa20e550554627cc", "thumb_width": 640, "item_id": 6435027917507396098, "vu": "a23dd58cb99a454daa20e550554627cc", "duration": 260, "user_id": 2962477694, "md5": "0917655c62f64d98c338b60ade49dd6f", "thumb_uri": "2a390002d930ea0a0242", "hash_id": 694872295238498507} --}

回答:

先在某一列填入题库,在另一列写入随机函数randbetween来获得随机数,在另一列用indirect函数依据随机数抽出题库列的单词,会有微量重复,不过简单轻松完结。每一遍按一下空格键就足以另行出题。

VBA在哪儿存放的?怎么运作?

 A.模块中

   在Excel 20第10中学若没有“开采工具”项,通过“文件”——“选项”——“自定义功用区”——选中“开荒工具”——“彰着”(图1卡塔 尔(阿拉伯语:قطر‎。

(注:为了加强word20第10中学插入的图片的品质,“文件”——“选项”——“高档”——选中“不压缩文件图像品质”——“分明”。卡塔尔国

 

图1 选中“文件”—“选项”

图2 ”自定义功用区”—“开采工具”——“显著”

 

图3 最终的分界面多出了“开拓工具”选项卡

 

                                                               图4 代码存放在“模块”中

B.运行宏

单击向右的绿三角,即能够运作。

 

   

                                                   图5 右绿三角运维  

                                                          图6  选中test并“运行”

 

                                                    图7 运转结果

3.什么样是宏?宏和VBA有哪些关联?

 宏(Macro),是大器晚成种批量甩卖。

 宏平日不仅可以够摄像又足以手动编制程序,而VBA平时是经过编制程序落成。宏能够和VBA相结合使用。

4.录像一个宏。

  A.“开辟工具”——“录像宏”——宏名称叫“输入100”——“摄像”——在A1单元格中输入100——“截至”。

  B.“宏”——选中“输入100”——“执行”。

  

5.编辑三个宏。

  A.“开垦工具”——“Visual Basic”——“视图”——“工程能源微电脑”——“插入”——“模块”——在左侧输入代码:

   金沙澳门官网 12

  B. 单击绿右三角就可以运转。大概关闭VBA编辑窗口,单击“宏”——选中“test”——“推行”。

 

6.VBA语句

  A.宏程序语句。

   金沙澳门官网 13

  B.函数程序语句

  金沙澳门官网 14

 C.在前后相继中应运语句。

  金沙澳门官网 15

D.循环语句。

  金沙澳门官网 16

7.VBA对象

  A.专门的学业簿对象

     Workbooks 代表专门的学问簿群集,全数的工作簿,Workbooks(N),表示已开采的第N个职业簿

     Workbooks ("职业簿名称")

     ActiveWorkbook 正在操作的职业簿

     ThisWorkBook '代码所在的工作簿

  B.专门的职业表对象

     Sheets("专门的学业表名称")

     Sheet1 表示第一个插入的专门的学问表,Sheet2意味着第三个插入的职业表....

     Sheets(n) 表示按排列顺序,第n个专门的学业表

     ActiveSheet 表示活动专门的学问表,光标所在专业表

     worksheet 也代表工作表,但不包涵图片专业表、宏工作表等。

  C.单元格对象

     cells 全部单元格

     Range ("单元格地址")

     Cells(行数,列数)    Range(“B3”卡塔 尔(英语:State of Qatar)和Cells(3,2卡塔 尔(阿拉伯语:قطر‎表示一点差距也未有的单元格

     Activecell 正在选中或编辑的单元格

     Selection 正被选中或选取的单元格或单元格区域

8. VBA属性

    VBA属性就是VBA对象所享有的特点,表示有个别对象的质量如下:对象.属性=属性值

    Sub ttt()

      Range("a1").Value = 100     ’给单元格a1填充数值100

    End Sub

                                                                                                                                    

    Sub ttt1()

      Sheets(1).Name = "专门的工作表改名了"   ’给职业簿重命名称为“职业表改名了”

    End Sub

                                                                                                                                       

    Sub ttt2()

       Sheets("Sheet2").Range("a1").Value = "abcd"   ’给sheet2职业表的a1单元格填充字符串“abcd”

    End Sub

                                                                                                                                        

      Sub ttt3()

     ’单元格的在那之中的填充色

          Range("A2").Interior.ColorIndex = 3  ’将A2单元格的背景颜色设置为土灰

         Range("A2").Font.ColorIndex = 3      ’将A2单元格的字体颜色设置为革命

      End Sub

                                                                                                                                           

9.VBA方法

   VBA方法是职能于VBA对象上的动作,表示用某些方法效果于VBA的对象上,能够用上边包车型客车格式:

   对象.方法  参数名称:=参数值

                                                                                                                                            

  Sub ttt4()

      ’Range("A1").Copy Destination:= Range("A2")

      Range("A1").Copy Range("A2")   ’将A第11中学的内容复制到A2

  End Sub

                                                                                                                                            

  Sub ttt5()

    Sheet1.Move before:=Sheets("Sheet3")   ’将sheet1表移动到sheet3事先

  End Sub

                                                                                                                                           

10.在一个乡政党的文本中须要将Excel中一个表格的身份ID号,配对并填充到另二个表中。宏代码如下:

     Sub 配对()

      Dim I, J As Integer

      For I = 3 To 225

           For J = 4 To 930

               If Sheets("Sheet4").Range("b" & I).Value = Sheets("黄门乡").Range("b" & J).Value Then   

                     Sheets("Sheet4").Range("e" & I).Value = Sheets("黄门乡").Range("d" & J).Value

              End If

         Next J

       Next I

     End Sub

     ’竟然没写入End IF,提醒错误“Next 缺乏 For”

11.判定语句

   A.if推断语句

                                                                                                                           

     Sub 决断1() '单条件推断

       If Range("a1").Value > 0 Then

            Range("b1") = "正数"

       Else

            Range("b1") = "负数或0"

       End If

     End Sub

  B.IIF判别语句

                                                                                                                            

    Sub 判断4()

        Range("a3") = IIf(Range("a1") <= 0, "负数或零", "负数")

    End Sub

  C.select判断

                                                                                                                             

    Sub 判定1() '单条件判断

      Select Case Range("a1").Value

      Case Is > 0

         Range("b1") = "正数"

      Case Else

         Range("b1") = "负数或0"

      End Select

    End Sub

                                                                                                                               

    Sub 判定2() '多规格推断

        Select Case Range("a1").Value

         Case Is > 0

           Range("b1") = "正数"

         Case Is = 0

           Range("b1") = "0"

         Case Else

           Range("b1") = "负数"

         End Select

       End Sub

                                                                                                                                                     

金沙澳门官网 ,      Sub 判断3()

         If Range("a3") < "G" Then

            MsgBox "A-G"

         End If

      End Sub

D.区间判别

                                                                                                                                     

  Sub if区间剖断()

  If Range("a2") <= 1000 Then

    Range("b2") = 0.01

  ElseIf Range("a2") <= 3000 Then

    Range("b2") = 0.03

  ElseIf Range("a2") > 3000 Then

    Range("b2") = 0.05

  End If

  End Sub

                                                                                                                               

Sub select区间判断()

 Select Case Range("a2").Value

 Case 0 To 1000

   Range("b2") = 0.01

 Case 1001 To 3000

   Range("b2") = 0.03

 Case Is > 3000

   Range("b2") = 0.05

 End Select

End Sub

                                                                                                                                  

12.循环语句

   A.单语句代码

     Sub t1()

      Range("d2") = Range("b2") * Range("c2")   ’将b2单元格与c2单元格相乘并赋值给d2单元格

      Range("d3") = Range("b3") * Range("c3")   ’将b3单元格与c3单元格相乘并赋值给d3单元格

      Range("d4") = Range("b4") * Range("c4")   ’将b4单元格与c4单元格相乘并赋值给d4单元格

      Range("d5") = Range("b5") * Range("c5")   ’将b5单元格与c5单元格相乘并赋值给d5单元格

      Range("d6") = Range("b6") * Range("c6")   ’将b6单元格与c6单元格相乘并赋值给d6单元格

     End Sub

  B.For each 循环语句

    Sub s1()

      Dim rg As Range

      For Each rg In Range("a1:b7,d5:e9")

        If rg = "" Then

           rg = 0

        End If

      Next rg

    End Sub

   ’注:在a1到b7单元区域和d5到e9单元格区域中的遍历全部单元格,若为空,就赋值0。

C、For Next语句

   Sub t2()

   Dim x As Integer

    For x = 10000 To 2 Step -3

     Range("d" & x) = Range("b" & x) * Range("c" & x)

    Next x

   End Sub

   注:将10000行数据中每间距3行的b列和c列相乘赋值给d列。

D、For Each语句(应用offset方法来制定单元格卡塔尔

   Sub t3()

   Dim rg As Range

    For Each rg In Range("d2:d18")

     rg = rg.Offset(0, -1) * rg.Offset(0, -2)

    Next rg

   End Sub

   ’注:offset便是偏移,针对d2来说,Offset(0, -1)指的正是向左移动1个单元格,即c2;而Offset(0, -2)指的就是向左移动2个单元格,即b2;第四个参数是笔直运动,正为进步,负为向下;第二个参数是程度位移,正为向右,负为向左。

   

                图12 offset函数深入分析图

E.Do ……Loop Until语句

   Sub t4()

   Dim x As Integer

    x = 1

    Do

      x = x 1

      Cells(x, 4) = Cells(x, 2) * Cells(x, 3)

    Loop Until x = 18

   End Sub

   ’注:Cell(行,列卡塔 尔(英语:State of Qatar),即上文中的x指的是行。将第二列和第三列相乘赋值给第四列。

F.Do While……Loop语句

   Sub t5()

    x = 1

    Do While x < 18

      x = x 1

      Cells(x, 4) = Cells(x, 2) * Cells(x, 3)

    Loop

   End Sub

   ’注:Cell(行,列卡塔尔,即上文中的x指的是行。将第二列和第三列相乘赋值给第四列。

G.Do ……Loop Until语句

   Sub s2()

    Dim x As Integer

    Do

      x = x 1

      If Cells(x 1, 1) <> Cells(x, 1) 1 Then

         Cells(x, 2) = "断点"

         Exit Do

      End If

    Loop Until x = 14

   End Sub

   ’推断第1列中的数据不总是,就在那后的单元格输入贰个“断点”。

13. 攻读变量

   A、什么是变量?

     所谓变量,正是可变的量。就好象在内部存款和储蓄器中权且贮存的二个小盒子,这么些小盒子放的哪些物体不牢固。

     Dim m As Integer

     Sub t1()

       Dim X As Integer 'x正是一个整形变量

       For X = 1 To 10

         Cells(X, 1) = X

        Next X

      End Sub

   B、小盒子里可以放怎么?

 

      1、放数字   2、放文本

        Sub t2()

       Dim st As String    ’st贮存字符串

       Dim X As Integer    ’X贮存整数类型

       For X = 1 To 10

        st = st & "Excel精英培训"

       Next X

       End Sub

     3、 放对象

       Sub t3()

        Dim rg As Range      ’rg是单元格类型

         Set rg = Range("a1") ’Set关键词就是给目的变量钦赐值

          rg = 100

        End Sub

    4、 放数组

       Sub t4()

          Dim arr(1 To 10) As Integer, X As Integer  

          For X = 1 To 10

            arr(X) = X

          Next X

       End Sub

      ’数组arr(1卡塔尔国,arr(2卡塔尔,arr(3卡塔尔国……arr(10卡塔尔国都是整形类型

C、变量的门类和表明

   1 变量的花色

     (1)整型(Integer):

          表示-32768至32767时期的子弹头          比如:10   110   20

     (2)长整型(Long):

          表示-2,147,483,648至2,147,483,647以内的整数

           举例:长整型的书写:    23454444554     

     (3卡塔尔国单精度实型(Single卡塔尔国:

           有效数为7位 表示-3.37E 38至3.37E 38期间的实数

     (4卡塔尔国双精度实型(Double卡塔尔国:

           有效数为13人

     (5)字符型(String)

         在VB中字符串常量是用双引号“ ”括起的风流倜傥串字符,例 如"ABC","abcdefg","123","0","VB程序设计"等。

    (6) 逻辑型(Boolean)

         逻辑型又称布尔型,其数额唯有True(真)和False(假)多个值

    (7)日期型(Date)

         表示日期和岁月

         用两个“#”符号把日子和时间的值括起来       如:#08/20/2001#、#2001-08-20#

   2 为啥要表明变量

     变量通过索引能够积累越来越多的值,在循环结构中的功能大。

   3 注明变量

      dim public

D、变量的共处周期

   1 进度级变量:进度截止,变量值释放

       '如t1

   2 模块级变量:变量的值只在本模块中保证,职业簿关闭时任何时候释放   

 

         Sub t6()

            m = 1

         End Sub

         

        Sub t5()

          MsgBox m

          m = 7

         End Sub

 

   3 全局级变量: 在有着的模块中都可以调用,值会保存到EXCEL关闭时才会被假释。

       ' public 变量

         Sub t7()

           MsgBox qq

         End Sub

 E、变量的释放

     日常景况下,进度级变量在进程运营截至后就能自行从内部存款和储蓄器中释放,而唯有黄金年代对从外表借用的指标变量才要求动用set 变量=nothing举行放飞。

14.函数与公式

A、用VBA在单元格中输入管见所及公式

Option Explicit

     Sub t1()

       Range("d2") = "=b2*c2"   ’将b2乘以c2赋值给d2

     End Sub

     金沙澳门官网 17

     Sub t2()

本文由金沙澳门官网发布于金沙澳门官网,转载请注明出处:宏技巧集绵,Excel如何做一个自动出题表格

关键词: 金沙澳门官网