swiper左右切换按钮无效_VBA学习笔记58:选项按钮、复选框、框架、滚动条、微调、图像与多页...

d0c71d5d02cdceeb03037383ae0168a5.png

学习资源:《Excel VBA从入门到进阶》第58集 by兰色幻想


一、控件简介

关于本节所讲的所有控件,可以在工具箱找到,或右键点击“附加控件”去添加。

40cede7d0f8fb2b321f58247956ed021.png
  1. 复选框

可以同时选取多个。

f46c4a10963a40384fc372e1149a64b6.png
红色框或者圈住的地方

写一段程序,在文本框中显示复选内容:

三个选项的名称分别为CheckBox1、CheckBox2、CheckBox3。

文本框的名称为TextBox3。

Private Sub CommandButton1_Click()
Dim sr As String

If CheckBox1.Value = True Then sr = sr & " " & CheckBox1.Caption
If CheckBox2.Value = True Then sr = sr & " " & CheckBox2.Caption
If CheckBox3.Value = True Then sr = sr & " " & CheckBox3.Caption
    
TextBox3.Value = sr

End Sub

运行演示:

c306426c07ad72f5058eec2f576cf8dd.gif

2. 选项按钮

在其框架里只能选取一个,不同框架互不影响。

201c76cf2102f3879c9a48c719d98475.png

3. 框架

可以把控件里的东西区分为很多组,而且组和组之间都是相互独立,互不影响的。而且在编辑的时候可以同时移动和选取组里的东西。

bc8f17710a62d5b0860f9764a7b2aa1a.png

4. 图像

在控件里插入图像。

42aeb60459ea2732e0a5c9bc1183ed5e.png

例:把某路径下的图片文件名称都加载到列表中,点击图片名,就显示该图片。

(1)加载事件,把当前路径下的图片文件通过列表框加载过来。

Private Sub UserForm_Initialize()
Dim f As String
'通过dir查找图片文件
f = Dir(ThisWorkbook.path & "pic*.jpg")

Do
    Me.ListBox1.AddItem f
    f = Dir
Loop Until Len(f) = 0

End Sub

(2)单击事件,选中后加载图片

Private Sub ListBox1_Click()
Dim path

path = ThisWorkbook.path & "/pic/" & ListBox1.Value
'用loadpicture函数加载图片
Image1.Picture = LoadPicture(path)

End Sub

运行演示:

9eeba18c79641707ec9b2b8f33e123af.gif

5. 微调和滚动条

ed5c7a8b371f34ea2f3afe782207819a.png
微调按钮

eb03b17bd5fea6e21f91c5f4866329a9.png
滚动条按钮

① 设置最大值和最小值(调整范围)

在属性窗口的Max属性和Min属性输入。

ea77974697c3b6108832c66c9ef5990d.png

② 步长(每点击两边按钮和滑块增加或减少的步长)

Largechange属性,只用于滚动条,点击一次中间空白区域增加或减少的数。

Smallchange属性,点击一次按钮的左右按钮变化的数。

例:把滚动条的Largechange属性设置为10,Smallchange属性设置为1,演示一下效果。

f6aa4cf6856ba8f2563939033c250456.png
设置Largechange和Smallchange属性

b44dabcfd6cec620a6cb6441a9d86188.gif
点击中间空白区域,数值变化幅度是10(Largechange属性);而点击左右两方的按钮,数值变化幅度则是1(Smallchange属性)

微调只有Smallchange属性,因为没有中间的空白区域嘛

73f80b1c5f2c78c1263f0d69c52c36db.png

③事件

使用微调和滚动按钮就是为了调节数值,所以最终要把数值取出来,这就涉及到事件了。

  • change事件:

如果滚动条数值有变,把数值放到文本框控件中。

Private Sub ScrollBar1_Change()
    TextBox1.Value = ScrollBar1.Value
End Sub

如果微调数值有变,把数值放到文本框控件中

 Private Sub SpinButton1_Change()
  TextBox1.Value = ScrollBar1.Value
End Sub     
  • SpinUp事件

点击向上按钮,数值+1放到文本框控件中

Private Sub SpinButton1_SpinUp()
   TextBox2 = DateAdd("d", -1, TextBox2.Value)
End Sub
  • SpinDown事件

点击向下按钮,数值+1放到文本框控件中

Private Sub SpinButton1_SpinDown()
   TextBox2 = DateAdd("d", 1, TextBox2.Value)
End Sub

可以在上面的演示中看到的数值的显示,就是因为有写这些事件。

6. 多页控件

在工具箱找到多页控件,创建,默认两页,右键可新建页。

880dbb9a0e9fc89d7add22fda1b80674.gif
上面的单选和复选、微调和滚动条、图片控件也使用了多页控件

① 多页控件的多行是指什么?

MultiRow 属性:当多页控件的标签很多时,可以分多行显示。

563479d88bc21a5113fd6bc7ffd64575.png
当MultiRow为False时

80aaa4516f1bf73dc4439ad7ea40fc7e.png
当MultiRow为True时

② 多页控件的值

1)选择第1个标签,Value为0,选择第2个Value为1....选择第N个Value为N-1。value是从0开始算。

2)设置值的属性后可以直接选取这个标签。如MultiPage1.Value=0 就可以选取第2个标签。(后面会举一个示例)

Private Sub MultiPage1_Change()
   MsgBox MultiPage1.Value
End Sub

③ 隐藏标签

Style属性值为2时,可以隐藏标签

Me.MultiPage1.Style = 2

二、多页控件的实例

做一个有三个步骤的向导页面,通过多页控件的值的改变来跳转页面。

界面是这样设计的 ↓

5d6aef6ebbde24073fe0b26bc3befd77.png

代码如下:

① 首先是一个发生事件,去获取多页控件的值,让它可以根据选取改变

Private Sub UserForm_Initialize()
Me.MultiPage1.Style = 2     '隐藏标签,让用户只能通过点击“上一步”和“下一步”来进行操作,而不是页面标签切换。
Me.MultiPage1.Value = 0   '可以设置多页控件的值,来改变选取
按钮权限      '调用程序
End Sub

② 上面有一段调用程序,作用是判断按钮对应跳转的页,并显示所在步骤。

Sub 按钮权限()
 Select Case Me.MultiPage1.Value
   Case 0   '如果多页控件的值是0,证明它在第一页,要禁止点击上一步
     上一步.Enabled = False
     Me.Caption = "第1步 共" & Me.MultiPage1.Pages.Count & "步"
   Case Me.MultiPage1.Pages.Count - 1 '如果多页控件的值是总页数-1(多页控件的值从0开始),证明它在最后一页,要禁止点击下一步
     下一步.Enabled = False
     Me.Caption = "第" & MultiPage1.Pages.Count & "步 共" & Me.MultiPage1.Pages.Count & "步"
   Case Else    '如果都不是上面两种情况,那就是在中间页数,上一步和下一步都可以点击
     上一步.Enabled = True
     下一步.Enabled = True
    Me.Caption = "第" & MultiPage1.Value + 1 & "步 共" & Me.MultiPage1.Pages.Count & "步"
   End Select
End Sub

③ 用Click事件,获取点击“上一步”和“下一步”按钮所对应多页控件的值。

Private Sub 上一步_Click()
Me.MultiPage1.Value = Me.MultiPage1.Value - 1
按钮权限
End Sub

Private Sub 下一步_Click()
Me.MultiPage1.Value = Me.MultiPage1.Value + 1
按钮权限
End Sub

运行演示:

d42a70c924afa44125535ccac5afd188.gif
(因为没有设置“完成”按钮对应什么操作,所以点击了也没反应哈。)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值