精华内容
下载资源
问答
  • 先展示效果:上述案例只是开发考试系统中的一个小步骤,本节主要是分享如何用窗体做出如上效果以及在过程中遇到问题。案例具备下面特点:1、点击开始后出现的窗体中显示第一道题目。2、每一道题目做答后,答案...

    我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效使用office为其服务。支持我,也为自己加油!

    先展示下效果:2ce77b84866ec265845f8663802a3ec4.gif上述案例只是开发考试系统中的一个小步骤,本节主要是分享如何用窗体做出如上效果以及在过程中遇到的问题。案例具备下面的特点:1、点击开始后出现的窗体中显示第一道题目。2、每一道题目做答后,答案区会自动获取选择好的选项。3、返回检查已答完的题目时以前选择的答案还在,而且更改勾选后,答案区也会更新。

    先来分享下我的做法:

    步骤如下:

    1、首先肯定要先插入一个窗体,题干和选项全部用标签来做,A、B、C、D前面对应的是复选框,下面换页的是旋转按钮

    所以本例用了一个窗体UserForm、三个控件:Label、CheckBox、SpinButton。

    e7f264bf14fa342f9634bd94de030d7c.pngVBE窗口中是这样的:82c556e053cf2b7a98c0028cd284838b.png2、接下来肯定要运行窗体吧,这一步放在普通模块中来做就可以。关键是想要明白,运行窗体后第一个界面是什么样的。第一个界面想要显示第一道题目,四个复选框全部都处于未选中状态,而且向案例中一样,如果答案区有内容,要先把答案区的内容清除掉,以便重新作答。代码如下:'声明公共变量Public i%, sht As Worksheet, uf1 As UserForm1'运行窗体并初始化Sub test()Set sht = Sheet1Set uf1 = UserForm1i=1sht.Range("K1:n3").ClearContents

    '初始化题目

    uf1.Label1 = sht.Range("c1")uf1.Label2 = sht.Range("d1")uf1.Label3 = sht.Range("e1")uf1.Label4 = sht.Range("f1")uf1.Label5 = sht.Range("g1")

    '初始化复选框,调整为未选中状态

    uf1.CheckBox1.Value = Falseuf1.CheckBox2.Value = Falseuf1.CheckBox3.Value = Falseuf1.CheckBox4.Value = False

    '运行窗体

    uf1.ShowEnd Sub变量“i”是旋转按钮的值,不管是窗体事件,还是换页都要用到这个变量,所以声明为公共变量。上面的题目存放在工作表Sheet1中 C1:G1 区域:4671609706522175b937e83969179905.png3、当点击复选框时,答案能自动写入当答案区域,这个比较简单,直接编写复选框的Click事件。代码如下:Private Sub CheckBox1_Click()If Me.CheckBox1.Value = True Then    sht.Range("k" & i) = "A"Else    sht.Range("k" & i).ClearContentsEnd IfEnd SubPrivate Sub CheckBox2_Click()If Me.CheckBox2.Value = True Then    sht.Range("l" & i) = "B"Else    sht.Range("l" & i).ClearContentsEnd IfEnd SubPrivate Sub CheckBox3_Click()If Me.CheckBox3.Value = True Then    sht.Range("m" & i) = "C"Else    sht.Range("m" & i).ClearContentsEnd IfEnd SubPrivate Sub CheckBox4_Click()If Me.CheckBox4.Value = True Then    sht.Range("n" & i) = "D"Else   sht.Range("n" & i).ClearContentsEnd IfEnd Sub一共四个复选框,每个复选框对应了一个Click事件,所以有四段代码,当然也可以简化。当复选框被选中时就在对应的单元格里输入答案,否则清空答案。这里用到了变量“i”的值,而“i”来源于点击旋转按钮后产生的值,故应该有SpinButton的Change事件。代码如下:Private Sub SpinButton1_Change()i = Me.SpinButton1.ValueCall test1End Sub点击后把SpinButton的值赋给变量“i”,同时运行另一段程序,另一段程序的目的是根据变量“i”的值,显示当前的题目以及勾选过的答案。代码如下:Sub test1()'更新题目和选项uf1.Label1 = sht.Range("c" & i)uf1.Label2 = sht.Range("d" & i)uf1.Label3 = sht.Range("e" & i)uf1.Label4 = sht.Range("f" & i)uf1.Label5 = sht.Range("g" & i)'根据已选答案更新复选框状态If sht.Range("k" & i) = "A" Then    uf1.CheckBox1.Value = TrueElse    uf1.CheckBox1.Value = FalseEnd IfIf sht.Range("l" & i) = "B" Then    uf1.CheckBox2.Value = TrueElse    uf1.CheckBox2.Value = FalseEnd IfIf sht.Range("m" & i) = "C" Then    uf1.CheckBox3.Value = TrueElse    uf1.CheckBox3.Value = FalseEnd IfIf sht.Range("n" & i) = "D" Then    uf1.CheckBox4.Value = TrueElse    uf1.CheckBox4.Value = FalseEnd IfEnd Sub以上所有步骤搞明白就可以实现案例中的效果了。学员遇到的问题是:

    f2d73fd5f7692b83da18e36f6e5594bc.gif

    1、运行窗体后,出现的是VBE界面中的窗体,点击旋转按钮后直接跳转到第二题(以上动图少录了一点)。

    2、从第一题往后作答,答案都能正常填写到答案区,可是返回去检查时,比如第2题选择了B、C,返回第一题时,第一题的答案就变成了A、D,原来被选中的B、C自动取消选中了。

    他的代码如下:

    Sub test1()Dim i As Integeri = UserForm1.SpinButton1.ValueUserForm1.CheckBox1.Value = FalseUserForm1.CheckBox2.Value = FalseUserForm1.CheckBox3.Value = FalseUserForm1.CheckBox4.Value = FalseUserForm1.Label1 = Sheet1.Range("c" & i)UserForm1.Label3 = Sheet1.Range("d" & i)UserForm1.Label4 = Sheet1.Range("e" & i)UserForm1.Label5 = Sheet1.Range("f" & i)UserForm1.Label6 = Sheet1.Range("g" & i)If Sheet1.Range("k" & i) = "A" Then    UserForm1.CheckBox1.Value = TrueEnd IfIf Sheet1.Range("l" & i) = "B" Then    UserForm1.CheckBox2.Value = TrueEnd IfIf Sheet1.Range("m" & i) = "C" Then    UserForm1.CheckBox3.Value = TrueEnd IfIf Sheet1.Range("n" & i) = "D" Then    UserForm1.CheckBox4.Value = TrueEnd IfEnd Sub

    与我的代码的主要区别在于上面代码中红色的部分:

    点击旋转按钮后,他是先让所有的复合框都初始化为未选中状态,然后根据答案区域的答案决定复选框是否处于选定状态,若有答案则让复选框处于选中状态,若无答案,则不处理,即复选框为未选中状态了(因为被初始化了)。

    举例:

    假如第一页选择了A、B、C、D,第二页也选择了A、B、C、D,现在我们由第二页返回第一页,按照程序,先把四个按钮全部初始化为未选中,然后执行

    If Sheet1.Range("k" & i) = "A" Then

        UserForm1.CheckBox1.Value = True

    End If

    K1单元格中为A,if里的条件符合了,再执行

    UserForm1.CheckBox1.Value = True

    注意,执行此句后会跳转到CheckBox1的Click事件中,而此时复合框是未选中状态,其值为False,就会运行

    sht.Range("k" & i).ClearContents

    所以会把K1单元格中的答案清空掉。

    同理,I1,M1,N1中的答案全被清空掉。

    而我的代码并没有先初始化复合框,而是直接根据答案区的答案确定复合框是否处于选定状态。

    还是上面的例子:

    假如第一页选择了A、B、C、D,第二页也选择了A、B、C、D,现在我们由第二页返回第一页,直接根据答案区的答案判断,K1中答案为A,那么运行UserForm1.CheckBox1.Value = True

    同样也会跳转到CheckBox1的Click事件中而此时复合框是选中状态(因为没有初始化),所以CheckBox1的Click事件任然把A写进K1,相当于K1中的值没变。

    所以得出一点结论,在普通模块的代码中给复选框赋值时,如果同时写了复选框的Click事件,那么在执行给复选框赋值的代码时会自动跳转到复选框的Click事件中运行。所以写普通模块中的代码时一定要注意,代码执行时是否会触发窗体中其它控件对应的事件。本案例需要的知识点:1、怎么向窗体中添加控件2、怎么运行控件3、编写窗体及控件的相关事件4、通过普通模块给控件复选框赋值对复选框的Click事件的影响。

    你也想实现上面的效果却完全读不懂本文,建议从基础开始学起,循序渐进,学习VBA需要耐心,坚持,把基础打好,就会越学越容易。

    本节的分享就到这里,鹏哥祝大家每天都有进步。

    聚米为谷

    博学宏才

    更多学习内容

    手机端请扫描

    dbc174acc731a65d98fa39bf131d9657.png

    电脑端请登录

    www.mihong.top

    dc87bcaa3683305e903384d837a24d52.gif您点的每个赞,我都认真当成了喜欢
    展开全文
  • 先展示效果:上述案例只是开发考试系统中的一个小步骤,本节主要是分享如何用窗体做出如上效果以及在过程中遇到问题。案例具备下面特点:1、点击开始后出现的窗体中显示第一道题目2、对每一道题目做出选择后,...

    我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效使用office为其服务。支持我,也为自己加油!

    先展示下效果:

    e694415a2c88dbc6c6e640e560373142.gif上述案例只是开发考试系统中的一个小步骤,本节主要是分享如何用窗体做出如上效果以及在过程中遇到的问题。案例具备下面的特点:1、点击开始后出现的窗体中显示第一道题目2、对每一道题目做出选择后,答案区会自动出现答案3、返回检查每道题时以前选择的答案还在,而且更改勾选后,答案也会更新先来分享下做法:步骤如下:1、首先肯定要先插入一个窗体,题干和选项全部用标签来做,A、B、C、D前面对应的是复选框,下面换页的是旋转按钮。所以本例用了一个窗体UserForm、三个控件:Label、CheckBox、SpinButton。5427cd524dd9bab9c2b76c15fb21cdf5.pngVBE窗口中是这样的:25eb94a8db51f8654c49d1dfefbb8e95.png2、接下来要肯定要运行窗体吧,这一步放在普通模块中来做就可以。关键是想要明白,运行窗体后第一个界面是什么,第一个界面想要显示第一道题目,四个复选框全部都处于未选中状态,而且向案例中一样,如果答案区有内容,要先把答案区的内容清除掉,以便重新作答。代码如下:'声明公共变量Public i%, sht As Worksheet, uf1 As UserForm1'运行窗体并初始化Sub test()Set sht = Sheet1Set uf1 = UserForm1i=1sht.Range("K1:n3").ClearContents

    '初始化题目

    uf1.Label1 = sht.Range("c1")uf1.Label2 = sht.Range("d1")uf1.Label3 = sht.Range("e1")uf1.Label4 = sht.Range("f1")uf1.Label5 = sht.Range("g1")

    '初始化复选框,调整为未选中状态

    uf1.CheckBox1.Value = Falseuf1.CheckBox2.Value = Falseuf1.CheckBox3.Value = Falseuf1.CheckBox4.Value = False

    '运行窗体

    uf1.ShowEnd Sub变量“i”是旋转按钮的值,不管是窗体事件,还是换页都要用到这个变量,所以声明为公共变量。上面的题目存放与工作表Sheet1中 C1:G1 区域:48ada06e680134befb8632b039e3519b.png3、当点击复选框时,答案能自动写入当答案区域,这个比较简单,直接编写复选框的Click事件。代码如下:Private Sub CheckBox1_Click()If Me.CheckBox1.Value = True Then    sht.Range("k" & i) = "A"Else    sht.Range("k" & i).ClearContentsEnd IfEnd SubPrivate Sub CheckBox2_Click()If Me.CheckBox2.Value = True Then    sht.Range("l" & i) = "B"Else    sht.Range("l" & i).ClearContentsEnd IfEnd SubPrivate Sub CheckBox3_Click()If Me.CheckBox3.Value = True Then    sht.Range("m" & i) = "C"Else    sht.Range("m" & i).ClearContentsEnd IfEnd SubPrivate Sub CheckBox4_Click()If Me.CheckBox4.Value = True Then    sht.Range("n" & i) = "D"Else   sht.Range("n" & i).ClearContentsEnd IfEnd Sub一共四个复选框,每个复选框对应了一个Click事件,所以有四段代码,当然也可以简化。当复选框被选中时就在对应的单元格里输入答案,否则清空答案。这里用到了变量“i”的值,而“i”来源于点击旋转按钮后产生的值,故应该有SpinButton的Change事件。代码如下:Private Sub SpinButton1_Change()i = Me.SpinButton1.ValueCall test1End Sub点击后把SpinButton的值赋给变量“i”,同时运行另一段程序,另一段程序的目的是根据变量“i”的值,显示当前的题目以及勾选过的答案。代码如下:Sub test1()'更新题目和选项uf1.Label1 = sht.Range("c" & i)uf1.Label2 = sht.Range("d" & i)uf1.Label3 = sht.Range("e" & i)uf1.Label4 = sht.Range("f" & i)uf1.Label5 = sht.Range("g" & i)'根据已选答案更新复选框状态If sht.Range("k" & i) = "A" Then    uf1.CheckBox1.Value = TrueElse    uf1.CheckBox1.Value = FalseEnd IfIf sht.Range("l" & i) = "B" Then    uf1.CheckBox2.Value = TrueElse    uf1.CheckBox2.Value = FalseEnd IfIf sht.Range("m" & i) = "C" Then    uf1.CheckBox3.Value = TrueElse    uf1.CheckBox3.Value = FalseEnd IfIf sht.Range("n" & i) = "D" Then    uf1.CheckBox4.Value = TrueElse    uf1.CheckBox4.Value = FalseEnd IfEnd Sub以上所有步骤搞明白就可以实现案例中的效果了。学员遇到的问题是:

    794d76d37f465364734907639834484b.gif

    1、运行窗体后,出现的是VBE界面中的窗体,点击旋转按钮后直接跳转到第二题(以上动图少录了一点)。2、从第一题往后,答案都能正常填写到答案区,可以返回去检查时,比如第2题选择了B、C,返回第一题时,第一题的答案就变成了A、D,原来被选中的B、C自动取消选中了。他的代码如下:Sub test1()Dim i As Integeri = UserForm1.SpinButton1.ValueUserForm1.CheckBox1.Value = FalseUserForm1.CheckBox2.Value = FalseUserForm1.CheckBox3.Value = FalseUserForm1.CheckBox4.Value = FalseUserForm1.Label1 = Sheet1.Range("c" & i)UserForm1.Label3 = Sheet1.Range("d" & i)UserForm1.Label4 = Sheet1.Range("e" & i)UserForm1.Label5 = Sheet1.Range("f" & i)UserForm1.Label6 = Sheet1.Range("g" & i)If Sheet1.Range("k" & i) = "A" Then    UserForm1.CheckBox1.Value = TrueEnd IfIf Sheet1.Range("l" & i) = "B" Then    UserForm1.CheckBox2.Value = TrueEnd IfIf Sheet1.Range("m" & i) = "C" Then    UserForm1.CheckBox3.Value = TrueEnd IfIf Sheet1.Range("n" & i) = "D" Then    UserForm1.CheckBox4.Value = TrueEnd IfEnd Sub

    与我的代码的主要区别在于上面代码中红色的部分:

    点击旋转按钮后,他是先让所有的复合框都初始化为未选中状态,然后根据答案区域的答案决定复选框是否处于选定状态,若有答案则让复选框处于选中状态,若无答案,则不处理,即复选框为未选中状态了(因为被初始化了)。

    举例:

    假如第一页选择了A、B、C、D,第二页也选择了A、B、C、D,现在我们由第二页返回第一页,按照程序,先把四个按钮全部初始化为未选中,然执行

    If Sheet1.Range("k" & i) = "A" Then

        UserForm1.CheckBox1.Value = True

    End If

    K1单元格中为A,if里的条件符合了,再执行

    UserForm1.CheckBox1.Value = True

    注意,执行此句后会跳转到CheckBox1的Click事件中,而此时复合框是未选中状态,其值为False,就会运行

    sht.Range("k" & i).ClearContents

    所以会把K1单元格中的答案清空掉。

    同理,I1,M1,N1中的答案全被清空掉。

    而我的代码并没有先初始化复合框,而是直接根据答案区的答案确定复合框是否处于选定状态。

    还是上面的例子:

    假如第一页选择了A、B、C、D,第二页也选择了A、B、C、D,现在我们由第二页返回第一页,直接根据答案区的答案判断,K1中答案为A,那么运行UserForm1.CheckBox1.Value = True

    同样也会跳转到CheckBox1的Click事件中而此时复合框是选中状态(因为没有初始化),所以CheckBox1的Click事件任然把A写进K1,相当于K1中的值没变。

    所以得出一点结论,在普通模块的代码中给复选框赋值时,如果同时写了复选框的Click事件,那么在执行给复选框赋值的代码时会自动跳转到复选框的Click事件中运行。所以写普通模块中的代码时一定要注意对复选框的Click事件事件代码的影响。本案例需要的知识点:1、怎么向窗体中添加控件2、怎么运行控件3、编写窗体及控件的相关事件4、通过普通模块给控件复选框赋值对复选框的Click事件的影响。

    公众号后台资源库可获取更多资源:

    56a024a8f49f36c5bccdfab38fae03a3.png

    本节的分享就到这里,祝大家每天都有进步。

    1

    在线课堂在逐渐完善中,欢迎您的光临!

    97d71be2090a15d7d346040dc3e64c4e.png

    153aa74885c6f8af85f82bd312cee500.gif

    点击下方“”即可进入云课堂学习!

    展开全文
  • 前天发了一个窗体应用简单例子,里面所举例子也不完善,在这里重新完善一下,图就是建的一个窗体可可实现一些功能,之前例子中插入行代码是不完善,现在重新发一下,这代码可以实现从第几行开始到第几...

    前天发了一个窗体应用的简单例子,里面所举的例子也不完善,在这里重新完善一下,下图就是建的一个窗体可可实现的一些功能,之前的例子中插入行的代码是不完善的,现在重新发一下,这代码可以实现从第几行开始到第几行,每相隔几行就插入几行的功能,当然,现在分享的主要是窗体的应用,里面的功能可以根据需要自行添加的,只是上次发了例子的代码是不完善的,现在完善一下。

    从第几行到第几行每隔几行插入几行

    执行结果

    下面是窗体中第一页插入行实现的功能,从第几行到第几行,每相隔几行插入几行空白行。

    Private Sub 开始插入_Click()

    Dim k, c, e, m, T

    k = 我的工具箱.k.Text '设置从第几行开始插入行的变量等于文字框名字为K的内容,这个内容是可自行输入修改的

    c = 我的工具箱.c.Text '插入几行

    e = 我的工具箱.e.Text '要插入行区域最后一行

    m = 我的工具箱.m.Text '相隔几行插入

    k= CInt(k)

    c = CInt(c)

    e = CInt(e)

    m = CInt(m)

    T = (e - k + 1) * (m + c) / m + k - 1 '这里是计算插入空白行后的的行数,

    '没使用cint把文本的数字转换转换成数值型,在进行数值计算时会出现一些问题,比如文本数字 2+2等于22,而不是等于4,但乘,除和减都可以,上次就是这里的原因导致当时相隔几行插入行的功能是没有实现的

    For i = k To T Step (c + m) 'k是开始插入的行,T是插入行后的最后行数,步进值为每次要插入的行数加上相隔的行数

    For v = 1 To c ‘要插入几行循环几次

    Rows(i).Insert

    Next

    Next

    End Sub

    下面演示一多页控件,

    添加多页控件

    多页控件1

    多页控件2

    多页控件3

    多页控件4

    在VBA代码编辑器中打窗体后在控件工具箱里有一个“多页”的控件,鼠标移动上面时会显示“多页”两字,选择后可以在窗体内拖动调大小,默认会有两个页,可以在页名上点右键,重命名为自己想要显示的字,右键菜单除了重命名还有添加新建、删除、移动页,四个选项。

    点击相应的页名字可以进行切换,每一页可以分别放置自己想要的控件,每一页上的控件都是要分别设置的,不同的页可以显示不同的内容,相当于把有限的空间加了几倍。如果要设置打开时的默认显示页,可以在窗体的加载时间,活动事件等里面添加一句,MultiPage1.value = 0,后面的0代表页数,0是第一页,1是第2页,和数组一样从0开始

    Private Sub UserForm_Activate() '窗体激活事件

    MultiPage1.value = 0 '设置多页控件的第一页为默认页

    End Sub

    如果需要在使用窗体的过程中可以同时鼠标操作表格,请把窗体属性中的ShowModal设置为Flase,否则打开窗体时无法对工作格进行操作。

    建议建一个退出按钮,添加代码 Unload 窗体名称 ,直接点击右上角的X,只是隐藏窗体,还会留在内存中,占用内存,使用Unload从内存中删除窗体,可以减少内存占用。如果还要继续使用可以点击右上角的X隐藏,否则点击退出按钮。

    Private Sub 退出_Click() '点击一个名为退出的按钮时执行里面的代码。

    Unload 我的工具箱 '从内存中彻底删除窗体,下次调用窗体时会重新生成。

    End Sub

    展开全文
  •  TextBox事件  →KeyPress事件语法如下: ...KeyANSI只是个参数,所以可以改成任何喜欢名字,每键入一个时候,都会触发KeyANSI,通过设置,可以实现限制默写值键入。 →KeyDown事件 按触发

    参考:http://msdn.microsoft.com/zh-cn/library/ktwtk9ff%28v=VS.80%29.aspx

     TextBox事 

    →KeyPress事件的语法如下:


    KeyANSI只是个参数,所以可以改成任何喜欢的名字,每键入一个值的时候,都会触发KeyANSI,通过设置,可以实现限制默写值的键入。
    →KeyDown事件    按下触发
    →KeyUp事件    松手触发

     CommandButton事 
    →MouseMove事件
    →MouseDown事件    按下事件,左右键都可
    →MouseUp事件    松开鼠标事件
    →MouseClick事件    鼠标点击事件,右键不可


     UserForm事 
    →MouseMove事件
    →Initialize事件
    Unload UserForm1   实现关闭窗体

     ListBox事 




     常用函数  

    → Instr(2, "eAlex", "e")    返回e在Alex中第一次出现的位置(从第1个字符开始算起,结果是4)
    → Round(34.566, 2)    返回前者保留2位小数的四舍五入结果
    → Int(34.43)    返回不大于此数的最大整数
    → Val("22.3")    转成数字
    → Left("Alex", 3)    左边3个字符
    → Mid("Alex", 1, 2)    索引1开始,长度为2的字符
    → Right("Alex.exe", 3)    右边3个字符


    → Asc("A")    返回一个 Integer,代表字符串中首字母的字符代码
    → Trim("  Alex  ")    去除所有空格
    → LTrim("  Alex  ")    去除左空格
    → RTrim("  Alex  ")    去除右空格
    → Len("Sleep")    计算长度
    → CInt("123")    转成整型Integer
    → CStr(123)    转成字符型String
    → Space(2)    两个空格


    → r = Cells(Rows.Count, 1).End(xlUp).Row    获取内容的最后一行

    Range("A1:A10").Select
    Selection.Copy
    Cells(2, 2).Select
    ActiveSheet.Paste
    Application.CutCopyMode = false    '选区复制,然后黏贴,最后取出选区框


    → Workbooks.Open "F:\Desktop\1.xls"    打开文件
    → ActiveWorkbook.Close savechanges:=True    关闭文件,保存文件
    → ActiveWorkbook.SaveAs Filename:="F:\Desktop\2.xlsx"    另存为文件


     TextBox控件 
    →TextBox1.Text
    →TextBox1.SetFocus    将光标定位到TextBox1上
    →TextBox1.SelStart    指定选中文本的起点位置
    →TextBox1.MaxLength    文本框可输入的最长长度
    →TextBox1.MultiLine    多行
    →TextBox1.Top
    →TextBox1.Left
    →TextBox1.Width
    →TextBox1.Height

     CommandButton控件 

    →CommandButton1.Top
    →CommandButton1.Left
    →CommandButton1.Width
    →CommandButton1.Height

    ListBox控件 

    →ListBox1.ListIndex    选中文本的索引,-1为没选定,0为第一个
    →ListBox1.List(0)    第一个条目的内容
    →ListBox1.ListCount    条目数目
    →ListBox1.ListStyle    值为1是有选框的
    →ListBox1.MultiSelect     值为1可以多选

    UserForm控件 
    →UserForm1.Show
    →Unload UserForm1

     ComboBox控件 
    →ComboBox1.List    可以直接用数组赋值
    →ComboBox1.ListIndex = 0    ComboBox上显示第一个文本
    →ComboBox1.Clear    去除上面所有内容
    →ComboBox1.AddItem "北京"    加入内容

     MultiPage控件 
    →MultiPage1.Value = 0    多页显示的时候显示第一页的内容
    →MultiPage1.SelectedItem.Index > 2     选中出了第一页以外的其他页


    MultiPage控件与TabStrip控件的区别就在于前者每一页之间没有任何关系,而后者则是公用同一个页面,只是标签名称不同的~
     TabStrip控件 

    →TabStrip1.Value = 0    多页显示的时候显示第一页的内容
    →TabStrip1.SelectedItem.Caption    不同Tab的名称
    →TabStrip1.SelectedItem.Index    不同Tab的索引
    →TabStrip1.Style    有三个选择,默认是0,1是按钮形式的

     Image控件 

    →Image1.Picture = LoadPicture(FilPath)    加载图片,其中FilPath是图片的完整地址



    Dim Arr As Variant
    Dim r As Integer
    r = Cells(Rows.Count, 1).End(xlUp).Row
    Arr = Range("A1:A" & r)
    ListBox1.List = Arr
    ComboBox也有同样地用法~






    展开全文
  • VBA 用户窗体的认识

    2020-08-18 21:19:49
    今天学VBA用户窗体~可算到这里来,有点以前大学学VB味道了 、插入新用户窗体 插入用户窗体很简单啦,在VBE工程右击选择插入——用户窗体就可以了。 如果下面这工具箱关闭了,可以在菜单栏...
  • 在Excel中输入固定记录时,...设计在VBA环境创建如下窗体窗体的下拉菜单和文本框对应需要输入字段,最下方放置两个按钮,分别用于保存和重置输入内容整体界面设计如下。在Excel中放入一个按钮控件,并指定宏如...
  • VBA 用户窗体的应用

    2020-08-22 21:50:36
    、使用外部控件简单音乐/视频播放器 对着工具栏点一下右键,就会出现附加组件,找到需要用外部组件就可以啦,比如咱们要做视频播放,只需要在附加组件中添加 WindowsMediaPlayer即可,结合昨天我们...
  • 我们目标是做一个具有查询及显示查询结果工具。上一章介绍了窗体及其属性、事件、方法等,这个东西只能算是画个查询条件框框,里面具体查询条件怎么填呢。 从我们见过软件分析,要写一个查询条件输入,...
  • 从桌面上看应该是,前面一个窗口输入查询条件,然后点确定,后面有个excel显示结果。 类似图这种 一、打开窗口 窗体俗称对话框,在可视化面向对象编程软件中都应该有。在VBA中也有,可以打开excel->...
  • 一、执行录制宏第一种方式 快捷键 Ctrl+符号第二种方式 用按钮 在excel中画一个类似,由按钮组成遥控器,通过按钮来执行录制下的宏,设置步骤: 第一步,依次单击 开发工具→插入→按钮(窗体控件)按钮,...
  • 图1第1步:创建示例用户窗体图2所示,我们简单地创建了一个用户窗体,在其中放置了标签、文本框、复选框和按钮控件。图2第2步:添加代码在用户窗体中单击鼠标右键,选择快捷菜单中“查看代码”命令。在用户...
  • 今天给大家分享VBA一个很重要概念—"事件",当然"此事件"非日常生活说"事件"。VBA事件指是当对象处于某种状态所触发动作。比如:我双击工作表,会自动弹出一个窗口欢迎我,那么这时工作表是对象,而...
  • 我先后讲解实现了数据首个记录显示,下一条记录显示,最后记录显示,数据录入,编辑,保存等功能,今日讲数据精确查询,也就是说在录入一个唯一值后,把这个唯一值匹配显示在窗体中。思路,①在...
  • VBA常用技巧

    2014-12-21 16:39:28
    技巧3 获得指定行、列中最后一个非空单元格 12 技巧4 定位单元格 12 技巧5 查找单元格 12 5-1 使用Find方法 12 5-2 使用Like运算符 12 技巧6 替换单元格内字符串 12 技巧7 复制单元格区域 12 技巧8 仅复制数值到另...
  • Excel_VBA教程

    2014-09-22 11:36:34
    5.从另外一个VBA过程里运行函数过程 94 6.传递参数 95 7.明确参数类型 96 8.按地址和按值传递参数 97 9.使用可选参数 97 10.定位内置函数 98 11.使用MSGBOX函数 99 12.MSGBOX函数运行值 103 13.使用INPUTBOX函数...
  • VBA编程技巧大全

    2013-08-05 09:03:19
    技巧3 获得指定行、列中最后一个非空单元格 17 技巧4 定位单元格 20 技巧5 查找单元格 21 5-1 使用Find方法 21 5-2 使用Like运算符 25 技巧6 替换单元格内字符串 26 技巧7 复制单元格区域 27 技巧8 仅复制数值到另...
  • 其中还包含了其它的许多技巧(32KB) 20,dyncontrol.zip 动态建立控件的范例(3KB) 21,listitemdrag.zip 演示如何将列表框中的条目拖放到另外一个列表框中(2KB) 22,ownerdrawmenu.zip 演示建立...
  • 04143设置单元格的下画线 04144设置单元格的字体属性(字体、字号、加粗、斜体、颜色等) 04145设置单元格区域的外部边框 04146设置单元格区域的全部边框 04147设置单元格区域的除对角框线以外的全部边框 04148删除...
  • ExcelVBA程序设计.doc

    2011-04-05 21:32:51
    5.从另外一个VBA过程里运行函数过程 94 6.传递参数 95 7.明确参数类型 96 8.按地址和按值传递参数 97 9.使用可选参数 97 10.定位内置函数 98 11.使用MSGBOX函数 99 12.MSGBOX函数运行值 103 13.使用INPUTBOX函数...
  • 最新Excel VBA活用范例大辞典 光盘

    热门讨论 2012-01-31 13:58:10
    详细介绍了利用Excel VBA操作Excel进而操作Windows方法和技巧,包括操作管理Excel VBA常见对象(Application对象、Workbook对象、Worksheet对象、Range对象、Chart对象、Shape对象、窗体控件对象以及对象事件)、...
  • 中文版Excel.2007高级VBA编程宝典 1/2

    热门讨论 2012-04-06 16:00:16
     3.6.1 一个数组公式例子  3.6.2 数组公式日历  3.6.3 数组公式优缺点  3.7 计数和求和技巧  3.7.1 计数公式示例  3.7.2 求和公式示例  3.7.3 其他计数工具  3.8 使用日期和时间  3.8.1 输入日期和...
  • 中文版Excel.2007高级VBA编程宝典 2/2

    热门讨论 2012-04-06 16:41:38
     3.6.1 一个数组公式例子  3.6.2 数组公式日历  3.6.3 数组公式优缺点  3.7 计数和求和技巧  3.7.1 计数公式示例  3.7.2 求和公式示例  3.7.3 其他计数工具  3.8 使用日期和时间  3.8.1 输入日期和...
  • access-vba之用户登录窗口

    千次阅读 2012-04-06 16:27:38
    创建一个窗体设计,然后在设计中找到控件  因为科室更新,带来了用户更新,所有用户行来源不指定,但科室行来源要指定  最后,我们通过VBA实现用户行来源,这样可以保证在科室变化情况,用户实时...
  • 使用ObjectDBX实现批量文字替换,与上一个版本比较起来,修正了一些Bug,并且是在不打开文件情况完成操作,速度有了明显提高。 第6章介绍了标注和公差使用。新圆弧长度标注程序涉及到多行文字格式代码...
  • Excel VBA 基础教程

    2019-01-01 18:51:06
    7 二、VISUAL BASIC程序设计网络教学.....................................................................................1 第VBA是什么 .................................................................
  • 1.进入Visual Basic编辑器,选择插入-用户窗体,即生成一个userform1,从右下方属性栏中(右键单击可以选择弹出属性栏),将caption设置为“正在进行模拟运算……”(这是一个标题,你自己可以随便取名字),...
  • EXCEL编程VBA高级教程

    2015-04-16 11:40:55
    VBA语言基础...................................................................................................................1 第节标识符...........................................................
  • PPT2016内嵌Excel动态图表

    万次阅读 2017-12-05 15:56:12
    背景 在excel中可以通过窗体或ActiveX控件达到动态控制图表显示目的,但当Excel图表作为对象内嵌到PPT后,在PPT播放模式,所有在Excel对象中的控件都是不可...一个方法是借助PPT中的VBA编程,用PPT中ActiveX控件

空空如也

空空如也

1 2 3 4 5
收藏数 85
精华内容 34
关键字:

vba窗体控件的下一个控件