使用 MultiPage 控件来处理大量可被分为几类排序信息。 MultiPage 控件由组成一个或多个 Page 对象, 每个包含不同组的控件。 以编程方式通过设置 MultiPage 控件的 Value 属性设置活动页。

方式一、如何控制 MultiPage 控件编程

要添加 MultiPage 控件并控制它通过使用宏, 请按照下列步骤操作:

1. 启动 Excel, 并打开新空白工作簿。
2. 在 工具 菜单, 指向 宏 , 然后单击 VisualBasic 编辑器 。
3. 在 插入 菜单上, 单击要在工作簿中插入 UserForm UserForm 。
4. 添加到 UserForm MultiPage 控件。
5. 将 Label 控件添加到 Page 1 多页 控件上。
6. 将 TextBox 控件添加到 Page 1 多页 控件上。
7. MultiPage 控件, 上单击, Page 2 , 然后重复步骤 5 和 6 以添加一个 Label 控件和 TextBox 控件。
8. 双击要打开代码窗口对 MultiPage 控件 MultiPage 控件。
9. 在代码窗口, 为 MultiPage1 Change 事件键入下列代码:
10. 在代码窗口, 为 UserForm Initialize 事件键入下列代码:
11. 在 运行 菜单上, 单击 运行子过程 / 用户窗体 。 Page 1, 上 TextBox 控件中键入 Test 。 当单击 Page 2 选项卡、 TextBox 2 被清除, 和标题为 Label 2 变为项, 在 Page 1 上 TextBox 所做 (” Test “) (” Test “)
  • 为 MultiPage1 Change 事件键入下列代码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub MultiPage1_Change()
    Select Case MultiPage1.Value
    ' If activating Page1...
    Case 0
    Label1.Caption = TextBox2.Text
    TextBox1.Text = ""
    ' If activating Page2...
    Case 1
    Label2.Caption = TextBox1.Text
    TextBox2.Text = ""
    End Select
    End Sub
  • 为 UserForm Initialize 事件键入下列代码:
    1
    2
    3
    4
    5
    Private Sub UserForm_Initialize()
    ' Force Page1 to be active when UserForm is displayed.
    MultiPage1.Value = 0
    Label1.Caption = ""
    End Sub

如何通过使用 MultiPage 控件创建一个向导界面

将任务需要几个增量步骤, 向导界面可能会非常有效。 您可使用 MultiPage 控件以创建一个向导界面代替使用多用户窗体。 本示例操作具有三页 MultiPage 控件。 附加到对 UserForm Initialize 事件过程禁用 Page 2 和 Page3, 并强制 Page 1 的 多页 控件可活动。

注意 您通过使用 Pages 集合, 索引 MultiPage 控件的页面时集合中第一页是零页。 此过程还设置标题的 CommandButton 控件并禁用 < 备份 按钮。

注意的功能是分配给 CommandButton 1 控件的 Click 事件过程 “ 后退 “ 按钮 < 是分配给 CommandButton 2 是 Click 事件过程控制功能的下一步 > 按钮。 若要通过使用 MultiPage 控件, 创建一个向导界面请按照下列步骤:

1. 启动 Excel, 并打开新空白工作簿。
2. 在 工具 菜单, 指向 宏 , 然后单击 VisualBasic 编辑器 。
3. 在 插入 菜单上, 单击要在工作簿中插入 UserForm UserForm 。
4. 添加到 UserForm MultiPage 控件。
5. 右键单击, “ Page 1 选项卡, 然后单击要添加到 多页 控件 Page3 新页 。
6. 添加一个 CommandButton 控件不位于 多页 控件上 UserForm 上。 重复此步骤可添加一个 UserForm 上二 CommandButton 控件。
7. 双击以打开代码窗口对于 UserForm UserForm 。
8. 在代码窗口, 为 UserForm Initialize 事件键入下列代码:
9. 在 运行 菜单上, 单击 运行子过程 / 用户窗体 。

当您单击下一步 > 激活 Page 2 后退 “ 按钮可, 和 < 当您单击 Next > 第二次, Page3 激活并题注为 CommandButton 2 更改为 “ 完成 “。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
'在代码窗口, 为 UserForm Initialize 事件键入下列代码:
Private Sub UserForm_Initialize()
With MultiPage1
' The next 2 lines disable Page2 & Page3.
.Pages(1).Enabled = False
.Pages(2).Enabled = False
' Make Page1 the active page.
.Value = 0
End With
' Set the caption on the CommandButtons.
CommandButton1.Caption = "<Back"
CommandButton1.Enabled = False
CommandButton2.Caption = "Next>"
End Sub
' Procedure for the "<Back" button
Private Sub CommandButton1_Click()
Select Case MultiPage1.Value
Case 1 ' If Page2 is active...
With MultiPage1
.Pages(0).Enabled = True ' Enable Page1.
.Value = MultiPage1.Value - 1 ' Move back 1 page.
.Pages(1).Enabled = False ' Disable Page2.
End With
CommandButton1.Enabled = False ' Disable Back button.
Case 2 ' If Page3 is active...
With MultiPage1
.Pages(1).Enabled = True ' Enable Page2.
.Value = MultiPage1.Value - 1 ' Move back 1 page.
.Pages(2).Enabled = False ' Disable Page3.
CommandButton2.Caption = "Next>"
End With
End Select
End Sub
' Procedure for the "Next>" button
Private Sub CommandButton2_Click()
Select Case MultiPage1.Value
Case 0 ' If Page1 is active...
With MultiPage1
.Value = MultiPage1.Value + 1 ' Move forward 1 page.
.Pages(1).Enabled = True ' Enable Page2.
.Pages(0).Enabled = False ' Disable Page1.
End With
CommandButton1.Enabled = True ' Enable Back button.
Case 1 ' If Page2 is active...
With MultiPage1
.Value = MultiPage1.Value + 1 ' Move forward 1 page.
.Pages(2).Enabled = True ' Enable Page3.
.Pages(1).Enabled = False ' Disable Page2.
End With
CommandButton2.Caption = "Finish" ' Change Next button to Finish.
Case 2 ' If Page3 is active...
MsgBox "Finished!" ' User is Finished.
Unload Me ' Unload the UserForm.
End Select
End Sub

方式二、vba Page分页控件使用方法介绍

基本说一下Page使用方法,包括添加分页、删除分页、和设置分页属性等几点比较重要的内容。

  • 一个表单示例,标题分布以按钮形式来显示,默认为标签形式。

设置方法:

1
2
3
With 
Me.MultiPage1.Style = fmTabStyleButtons'按钮形式'.Style = fmTabStyleTabs '默认为标签形式
End With
  • 背景图片设置

    背景图片用loadpicture("图片路径+文件名")加载

使用方法如下:

1
2
Me.MultiPage1.Pages.Item(1).Picture =_
LoadPicture(ThisWorkbook.Path & "\pic\123.jpg")

其中注意一点Item(i),item表示Page页 字母i代表下标或索引值.索引值从0开始,也就是说第一个Page页用item(0)来代表,最后一个用item(pages.count-1)来表示.

  • 改变按钮宽度

    这个功能其实就是设置分布标题大小,用TabFixedWidth设置宽,TabFixedHeight设置高.

使用方法如下:

1
2
3
with 
Me.MultiPage1.TabFixedWidth = 80.TabFixedHeight=28
endwith
  • 新建分页

新建分页也十分简单,一行代码就可以完成. MultiPage1.Pages.Add “分布名”,”标题名”,索引值

使用方法如下:

1
2
3
4
Dim x As Integerx = Me.MultiPage1.Pages.Count
If x > 6 Then
Exit Sub
Me.MultiPage1.Pages.Add "page" & x, "新建 " & x & "#", x
  • 删除分页

    删除分页也是一行代码完成的,Me.MultiPage1.Pages.Remove 索引

使用方法如下:

1
2
3
4
5
Dim i As Integeri = Me.MultiPage1.Pages.Count - 1'取最后一个分布索引号
If i <= 4 Then
Exit Sub'判断是否是删除页 不能把自己删除了

Me.MultiPage1.Pages.Remove i'执行删除分页
  • 结尾
    其实对分页控件用得不是很熟悉,所以也是边学边做,,有些错误的地方,就难免.
    同时也希望指出不正确的地方,加以改正.
    关注江觅学习更多vba编程技术

相关链接

  1. VBA控件常规使用–multiPage 控件
  2. vba Page分页控件使用方法介绍

=================我是分割线=================

欢迎到公众号来唠嗑: