|
|
|
|
|
|
本文介绍如何更改 Microsoft Excel 中以编程方式的用户窗体。它包括示例和 Microsoft Visual Basic for Applications (VBA) 向您展示如何利用用户窗体的功能以及如何使用 ActiveX ™ 控件,供用户窗体的宏。
用户窗体的基本原则的介绍,介绍如何显示用户窗体、 如何暂时隐藏用户窗体,以及如何消除用户窗体。您还显示了如何使用最常用的事件与用户窗体)
初始化事件,单击事件,并终止事件。一个或多个下面的示例演示如何使用以下 ActiveX ™ 控件的每个用户窗体中:
•标签控件
•文本框控件
•命令按钮控件
•列表框控件
•组合框控件
•框架控件
•数值调节钮控件
•复选框控件
•切换按钮控件
•TabStrip控件
•多页控件
•滚动条控件
•数值调节钮控件
•RefEdit控件
•图像控件
更多信息Microsoft 提供的编程示例仅用于说明,没有任何明示或暗示的担保。这包括但不限于对适销性或特定用途适用性的暗示保证。本文假定您熟悉所演示的编程语言和用于创建和调试过程的工具。Microsoft 的支持工程师可以帮助解释某个特定过程的功能,但他们不会修改这些示例以提供额外的功能或构建过程以满足您的特定要求。
用户窗体基础知识
如何显示用户窗体
以下是用于以编程方式显示用户窗体的语法:
UserFormName。显示
若要显示名为 UserForm1 的用户窗体,请使用下面的代码:
UserForm1.Show您可以用户窗体加载到内存,而不实际显示它。它可能需要复杂用户窗体几秒才可显示。因为您可以将用户窗体预先加载到内存,您可以决定何时导致此开销。UserForm1 加载到内存,而不显示它,请使用下面的代码:
Load UserForm1若要显示用户窗体,必须使用上面所显示的显示方法。
如何暂时隐藏用户窗体
如果您想要暂时隐藏用户窗体,使用Hide方法。您可能想要隐藏用户窗体,如果您的应用程序涉及到用户窗体之间移动。若要隐藏用户窗体,请使用下面的代码:
UserForm1.Hide有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
213747
() http://support.microsoft.com/kb/213747/
XL2000: 如何使用命令按钮的自定义用户窗体之间移动
如何从内存中移除用户窗体
若要从内存中删除用户窗体,请使用Unload语句。若要卸载名为 UserForm1 的用户窗体,请使用下面的代码:
Unload UserForm1如果您卸载了用户与用户窗体关联,或与用户窗体上的控件关联的事件过程中窗体 (例如,单击一个命令按钮控件) 时,可以使用"我的"关键字 (而不是用户窗体的名称。若要使用"我的"关键字卸载用户窗体,请使用下面的代码:
Unload Me如何使用用户窗体事件
用户窗体支持许多预定义的事件,您可以附加到 VBA 过程。该事件发生时,运行在附加到该事件的过程。一个由用户执行的操作可以触发多个事件。最经常使用的用户窗体的事件有的初始化事件、 Click事件和终止事件。
注意Visual Basic 模块包含事件过程可能称为"后面"用户窗体模块。在包含模块的事件过程中不可见的 Microsoft 项目资源管理器窗口的 Visual Basic 编辑器中的模块集合。您必须双击用户窗体以查看的用户窗体代码模块的主体。
如何捕获用户窗体事件
若要捕获用户窗体的事件,请按照下列步骤操作:
1. 在 Excel 中创建一个新工作簿。
2. 在工具菜单上指向宏,然后单击Visual Basic 编辑器.
3. 在插入菜单上单击工具用户窗体插入工作簿中的用户窗体。
4. 双击用户窗体的用户窗体中显示代码窗口。
5. 在模块中键入以下代码:
Private Sub UserForm_Click()
Me.Height = Int(Rnd * 500)
Me.Width = Int(Rnd * 750)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Events Events Events!"
Me.BackColor = RGB(1025 100)
End Sub
Private Sub UserForm_Resize()
msg = "Width: " & Me.Width & Chr(10) & "Height: " & Me.Height
MsgBox prompt:=msg Title:="Resize Event"
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer CloseMode As Integer)
msg = "Now Unloading " & Me.Caption
MsgBox prompt:=msg Title:="QueryClose Event"
End Sub
Private Sub UserForm_Terminate()
msg = "Now Unloading " & Me.Caption
MsgBox prompt:=msg Title:="Terminate Event"
End Sub6.单击运行菜单上的运行子过程/用户窗体.
用户窗体首次加载时,该宏使用的初始化事件将用户窗体的标题属性更改为"事件事件事件!",并将背景颜色属性设置为深蓝色。
当您单击用户窗体时,则会触发Click事件。Click事件调整用户窗体的大小。因为您创建的Resize事件过程,请单击用户窗体后收到两个消息框。因为后面的Click事件的代码更改宽度属性和用户窗体的高度属性都Resize事件出现了两次。
关闭用户窗体初始化QueryClose事件。QueryClose事件显示消息框,其中包含为用户窗体代码中指定的初始化事件的标题。您可以使用QueryClose事件时要执行特定的一组操作,如果用户关闭用户窗体。
终止事件然后产生一个消息框,指出标题用户窗体是 UserForm1。在终止事件发生后从内存中删除用户窗体和用户窗体的标题返回到其原始状态。
如何防止用户窗体正在关闭通过使用关闭按钮
当您运行用户窗体, 关闭 添加按钮向用户窗体窗口的右上角。如果您想要阻止从正在关闭使用用户窗体 关闭 按钮,您必须补漏白的QueryClose事件。
用户窗体是从内存中卸载之前,将发生QueryClose事件。使用QueryClose事件的CloseMode参数来确定如何关闭用户窗体。CloseMode参数vbFormControlMenu值表示 关闭单击按钮。若要保持用户窗体处于活动状态,请取消QueryClose事件的参数设置为True。若要防止用户窗体正在关闭通过使用QueryClose事件 关闭 按钮,请按照下列步骤操作:
1. 在 Excel 中创建一个新工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 在用户窗体中添加命令按钮控件。
5. 双击 用户窗体 若要显示用户窗体的代码窗口。
6. 在代码窗口中,键入以下代码:
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer CloseMode As Integer)
IF CloseMode = vbFormControlMenu Then
Cancel = True
Me.Caption = "Click the CommandButton to close Me!"
End If
End Sub7.在上 运行 菜单上,单击 运行子过程/用户窗体.
当您单击未关闭用户窗体 关闭 按钮。您必须单击 命令按钮 要关闭用户窗体控件。
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
207714
(http://support.microsoft.com/kb/207714/ )
XL2000: 运行时错误,使用用户窗体集合
211527
(http://support.microsoft.com/kb/211527/ )
XL2000: 无法将用户窗体控件拖动到工作表
211868
(http://support.microsoft.com/kb/211868/ )
XL2000: 错误运行宏的用户窗体中插入控件
213582
(http://support.microsoft.com/kb/213582/ )
XL2000: 问题时,使用宏来向用户窗体添加控件
213583
(http://support.microsoft.com/kb/213583/ )
XL2000: 无法在其他项目中显示用户窗体
213736
(http://support.microsoft.com/kb/213736/ )
XL2000: 如何确定键按下鼠标按钮一起
213744
(http://support.microsoft.com/kb/213744/ )
XL2000: 如何暂时隐藏用户窗体
213747
(http://support.microsoft.com/kb/213747/ )
XL2000: 如何使用命令按钮的自定义用户窗体之间移动
213749
(http://support.microsoft.com/kb/213749/ )
XL2000: 如何若要使用用户窗体用于输入数据
213768
(http://support.microsoft.com/kb/213768/ )
XL2000: 如何动态调整用户窗体的大小
213774
(http://support.microsoft.com/kb/213774/ )
XL2000: 如何使用用户窗体中创建一个启动屏幕
VBA 代码
Excel 包含 15 个不同的控件,您可以在用户窗体上使用。本部分包含以编程方式使用这些控件的各种示例。
注意这篇文章中包含 VBA 代码不包含会影响所有的属性和控件事件的示例。如果您必须,您可以使用属性窗口查看属性的列表,可用的控件。要查看属性的列表, 视图 菜单上,单击 属性窗口.
如何使用设计模式下编辑控件
当您使用 Visual Basic 编辑器设计对话框中时,使用设计模式。在设计模式中,您可以编辑控件,并可以更改在属性窗口中的用户窗体上的控件的属性。若要显示属性窗口视图 菜单上,单击 属性窗口.
注意控件在设计模式中不响应事件。当您运行一个对话框,显示该用户看到它,该程序的方式处于运行模式。在运行中的控件的属性所做的更改从内存中卸载用户窗体时,将不会保留模式。
注意控件不响应事件在设计模式中的过程。当您运行一个对话框来显示该用户看到的方式时,该程序处于运行模式。用户窗体是从内存中卸载时,不会保留对处于运行模式的控件的属性所做的更改。
如何引用用户窗体上的控件
引用控件以编程方式取决于 Visual Basic 模块工作表中运行的代码的类型。如果从常规模块运行这段代码,语法是如下:
UserFormName.Controlname.Property = 值
例如,如果要将名为TextBox1Bob的值中名为 UserForm1 的用户窗体上的文本框控件的Text属性设置,请使用下面的代码:
UserForm1.TextBox1.Text = "Bob"如果代码在用户窗体或控件的事件启动的过程中,您不必向用户窗体的名称,请参阅。相反,使用下面的代码:
TextBox1.Text = "Bob"当您将代码附加到对象中时,代码附加到该对象的事件之一。在许多这篇文章中的示例中,将代码附加到对象命令按钮的Click事件。
标签控件
标签控件主要是用于描述其他控件上用户窗体。用户不能编辑的标签控件,用户窗体时在运行。若要设置或返回一个标签控件中的文本,请使用标题属性。设置标签控件的格式的其他常用的属性包括字体属性和属性。
如何使用 WITH 语句来设置标签控件的格式
要使用WITH语句更改标签控件的属性,请按照下列步骤操作:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 在用户窗体中添加一个标签控件。
5. 在用户窗体中添加命令按钮控件。
6. 双击 命令按钮 若要控制打开用户窗体的代码窗口。
7. 在代码窗口中,键入下面的代码为CommandButton1 的单击事件:
Private Sub CommandButton1_Click()
With Label1
'' Set the text of the label.
.Caption = "This is Label Example 1"
'' Automatically size the label control.
.AutoSize = True
.WordWrap = False
'' Set the font used by the Label control.
.Font.Name = "Times New Roman"
.Font.Size = 14
.Font.Bold = True
'' Set the font color to blue.
.ForeColor = RGB(00 255)
End With
End Sub8.在上 运行 菜单上,单击 运行子过程/用户窗体.
9. 单击 命令按钮.
文本加粗黑体字体大小为 14 中的标签控件上"这是标签示例 1"出现。
文本框控件
文本框控件通常用于收集用户的输入。文本属性中包含由文本框控件中的项。
如何使用文本框控件来验证密码
如果您设置的文本框控件的请属性,它将成为"屏蔽编辑"控件。每个字符的键入在文本框控件时将被从视觉上您指定的字符。要使用文本框控件验证密码,请按照下列步骤操作:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 在用户窗体中添加文本框控件。
5. 在上 视图 菜单上,单击属性 若要使属性窗口可见。
6. 在文本框控件的请属性中,键入 *.
注意在值更改为星号。
7. 在用户窗体中添加命令按钮控件。
8. 双击 命令按钮 若要控制打开用户窗体的代码窗口。
9. 在代码窗口中,键入下面的代码为CommandButton1 的单击事件:
Private Sub CommandButton1_Click()
If TextBox1.Text <> "userform" Then
MsgBox "Password is Incorrect. Please reenter."
TextBox1.Text = ""
TextBox1.SetFocus
Else
MsgBox "Welcome!"
Unload Me
End If
End Sub
10. 在上 运行 菜单上,单击 运行子过程/用户窗体.
11. 键入的密码 用户窗体 在文本框控件。
12. 单击 命令按钮控件。
例如,密码是"用户窗体"。如果您键入密码不正确,您会收到一个消息框,指明您的密码不正确,则清除文本框控件,然后再重新键入密码。当您键入正确的密码,您收到欢迎消息,并且用户窗体已关闭。
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识中的文章基址:
213555
(http://support.microsoft.com/kb/213555/ )
XL2000: 用户窗体的文本框没有数据验证属性
命令按钮控件
若要使用AddItem方法填充的列表框控件的水平单元格区域,请执行以下步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 在用户窗体中添加命令按钮控件。
5. 双击 命令按钮 若要控制显示用户窗体的代码窗口。
6. 在代码窗口中,键入以下代码:
Private Sub CommandButton1_Click()
red = Int(Rnd * 255)
green = Int(Rnd * 255)
blue = Int(Rnd * 255)
CommandButton1.BackColor = RGB(red green blue)
End Sub 7.在上 运行 菜单上,单击 运行子过程/用户窗体.
背景色 CommandButton1控件更改每次单击它。
有关其他信息命令按钮控件,请单击下面的文章编号,以查看文章在 Microsoft 知识库:
213572
(http://support.microsoft.com/kb/213572/ )
XL2000: 单击取消按钮不可能消除用户窗体
213743
(http://support.microsoft.com/kb/213743/ )
XL2000: 如何设置用户窗体上的默认命令按钮
列表框控件
列表框控件的目的是向用户显示要选择的项目的列表从。您可以存储在 Excel 工作表上的列表框控件的项目列表。若要填充工作表上单元格区域的列表框控件,请使用的行来源属性。当您使用多属性时,可以设置要接受多个选项的列表框控件。
如何获取当前选定的项从列表框控件
使用列表框控件的Value属性返回当前选定的项。若要返回在单个选择列表框控件中当前选定的项,请按照下列步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在工作表 Sheet1 上单元格 a1: a5,键入想要的值用于填充列表框控件。
3. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
4. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
5. 在用户窗体中添加列表框控件。
6. 双击 列表框 若要控制显示列表框控件的代码窗口。
7. 在代码窗口中,键入listbox1 Click事件的以下代码:
Private Sub ListBox1_Click()
MsgBox ListBox1.Value
End Sub 8.在上 运行 菜单上,单击 运行子过程/用户窗体.
当您单击列表中的项目时,以显示一个消息框当前选定的项。
如何获取多个选择列表框控件中的选定的项
要确定在多个选择列表框控件中选定的项,必须遍历所有的项目在列表中,并然后查询的Selected属性。若要用多个返回当前选定的项选择列表框控件,请按照下列步骤操作:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在工作表 Sheet1 上单元格 a1: a5,键入想要的值用于填充列表框控件。
3. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
4. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
5. 在用户窗体中添加列表框控件。
6. 在上 视图 菜单上,单击属性 若要查看属性窗口。
7. 键入表示为以下列表框控件属性的值:
Property Value
----------- -----------------------
MultiSelect 1 - frmMultiSelectMulti
RowSource Sheet1!A1:A88.在用户窗体中添加命令按钮控件。
9. 双击 命令按钮 若要控制显示用户窗体的代码窗口。
10. 在代码窗口中,键入下面的代码为CommandButton1 的单击事件:
Sub CommandButton1_Click ()
'' Loop through the items in the ListBox.
For x = 0 to ListBox1.ListCount - 1
'' If the item is selected...
If ListBox1.Selected(x) = True Then
'' display the Selected item.
MsgBox ListBox1.List(x)
End If
Next x
End Sub 11.在上 运行 菜单上,单击 运行子过程/用户窗体.
12. 在列表中选择一个或多个项目。
13. 单击 CommandButton1.
在您单击 CommandButton1每个项在列表框中所选控件将显示在单独的消息框。毕竟选项目显示在消息框中,用户窗体将自动关闭。
如何使用行来源属性来填充单元格与工作表上的列表框控件
若要使用的行来源属性来填充列表框控件中单元格区域的工作表上,请按照下列步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在工作表 Sheet1 上单元格 a1: a5,键入想要的值用于填充列表框控件。
3. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
4. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
5. 在用户窗体中添加列表框控件。
6. 在用户窗体中添加命令按钮控件。
7. 双击 命令按钮 若要控制显示用户窗体的代码窗口。
8. 在代码窗口中,键入下面的代码为CommandButton1 的单击事件:
Private Sub CommandButton1_Click()
ListBox1.RowSource = "=Sheet1!A1:A5"
End Sub
9. 在上 运行 菜单上,单击 运行子过程/用户窗体.
注意Listbox1不包含任何值。
10. 单击 CommandButton1.
使用工作表 Sheet1 上的单元格 a1: a5 中的值填充listbox1 。
如何填充数组中的值的列表框控件
本示例显示如何填充数组变量的列表框控件。您必须从赋值要一次的列表框控件一个项的数组。通常情况下,此过程要求使用循环结构,如for …下一步循环。若要填充列表框控件的一个数组变量,请执行以下步骤:
1. 启动 Excel,然后打开一个新的空白工作簿。
2. 在工作表 Sheet1 上单元格 a1: a5,键入您想要用来填充组合框控件的值。.
3. 选择工作表 Sheet1 上的单元格 a1: a5。
4. 在用户窗体中添加列表框控件。
5. 在上 插入 菜单上,单击模块 若要插入模块工作表。
6. 在代码窗口中,键入以下代码:
Sub PopulateListBox()
Dim MyArray As Variant
Dim Ctr As Integer
MyArray = Array("Apples" "Oranges" "Peaches" "Bananas" "Pineapples")
For Ctr = LBound(MyArray) To UBound(MyArray)
UserForm1.ListBox1.AddItem MyArray(Ctr)
Next
UserForm1.Show
End Sub
7. 向用户窗体中添加一个组合框控件。.
PopulateListBox过程生成一个简单的数组,并将中的项目要使用AddItem方法的列表框控件数组。然后,将显示用户窗体。
如何使用工作表上的水平单元格区域来填充列表框控件
如果列表框控件的行来源属性设置为水平区域的单元格,只有第一个值将显示在列表框控件。
若要使用AddItem方法来填充列表框控件的水平单元格区域,请执行以下步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在工作表 Sheet1 上单元格 a1: e1,键入想要的值用于填充列表框控件。
3. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
4. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
5. 在用户窗体中添加列表框控件。
6. 在上 插入 菜单上,单击模块 若要插入模块工作表。
7. 在代码窗口中,键入以下代码:
Sub PopulateListWithHorizontalRange()
For Each x In Sheet1.Range("A1:E1")
UserForm1.ListBox1.AddItem x.Value
Next
UserForm1.Show
End Sub8.在上 工具 菜单上,单击宏单击PopulateListWithHorizontalRange然后单击运行.
宏过程循环在 Sheet1 上的单元格 a1: e5 添加每次以一种listbox1值。
注意工作表 Sheet1 上单元格 a1: e5 为未绑定listbox1 。
如何从一个列表框控件绑定到数据的多个列返回多个值
有关组合框控件的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在指示的单元格中键入以下数据工作表 Sheet1 中:
收起该表格展开该表格A1: 一年 B1: 区域 C1: 销售
A2: 1996年 B2: 北 C2: 140
A3: 1996年 B3: 南 C3: 210
A4: 1997年 B4: 北 C4: 190
A5: 1997年 B5: 南 C5: 195
3. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
4. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
5. 在用户窗体中添加一个标签控件。
6. 在用户窗体中添加列表框控件。
7. 用鼠标右键单击 列表框然后单击属性.
8. 键入或选择的值表示为下表中所列的列表框控件的下列属性:
Property Value
----------------------------
BoundColumn 1
ColumnCount 3
ColumnHeads True
RowSource Sheet1!A2:A59.双击 列表框 若要控制显示列表框控件的代码窗口。
10. 在代码窗口中,键入以下代码:
Private Sub ListBox1_Change()
Dim SourceData As Range
Dim Val1 As String Val2 As String Val3 As String
Set SourceRange = Range(ListBox1.RowSource)
Val1 = ListBox1.Value
Val2 = SourceRange.Offset(ListBox1.ListIndex 1).Resize(1 1).Value
Val3 = SourceRange.Offset(ListBox1.ListIndex 2).Resize(1 1).Value
Label1.Caption = Val1 & " " & Val2 & " " & Val3
End Sub
11. 在上 运行 菜单上,单击 运行子过程/用户窗体.
当您单击列表框控件中的项时,标签将更改为显示所有三个中的项目该条目。
如何从一个列表框控件所绑定到的工作表中删除所有项
当您单击列表框控件中的项时,标签将更改以显示该条目中的所有这三个项目。
1. 启动 Excel,然后打开一个新的空白工作簿。
2. 在工作表 Sheet1 上单元格 a1: a5,键入想要的值用于填充列表框控件。
3. 在插入菜单上单击工具用户窗体插入工作簿中的用户窗体。.
4. 向用户窗体中添加一个复选框控件。
5. 在用户窗体中添加列表框控件。
6. 双击要显示代码窗口中的复选框控件的复选框控件。.
7. 在代码窗口中键入以下代码CheckBox1 更改事件:.
8. 在用户窗体中添加命令按钮控件。
9. 双击 命令按钮 若要控制显示代码窗口中的命令按钮控件。
10. 在代码窗口中,键入下面的代码为CommandButton1 的单击事件:
Private Sub CommandButton1_Click()
ListBox1.RowSource = ""
End Sub
11. 在上 运行 菜单上,单击 运行子过程/用户窗体.
添加到用户窗体中的列表框控件中填充您在工作表 Sheet1 上输入的值。
12. 单击CommandButton1。
从listbox1中删除所有项目。
如何从列表框控件未绑定到工作表中删除所有项目
从ListBox1中移除所有项
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 在用户窗体中添加列表框控件。
5. 在上 插入 菜单上,单击模块 若要插入模块工作表。
6. 在代码窗口中,键入以下代码:
Sub PopulateListBox()
Dim MyArray As Variant
Dim Ctr As Integer
MyArray = Array("Apples" "Oranges" "Peaches" "Bananas" "Pineapples")
For Ctr = LBound(MyArray) To UBound(MyArray)
UserForm1.ListBox1.AddItem MyArray(Ctr)
Next
UserForm1.Show
End Sub
7. 在用户窗体中添加命令按钮控件。
8. 双击 命令按钮 若要控制显示代码窗口中的命令按钮控件。
9. 在代码窗口中,键入下面的代码为CommandButton1 的单击事件:
Private Sub CommandButton1_Click()
For i = 1 To ListBox1.ListCount
ListBox1.RemoveItem 0
Next I
End Sub
10. 在上 工具 菜单上,单击宏单击 PopulateListBox然后单击运行.
填充列表框控件,并将用户窗体显示。
11. 单击CommandButton1。
从listbox1中删除所有项目。
对于其他信息的列表框控件中,单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
161598
(http://support.microsoft.com/kb/161598/ )
关: 如何将数据添加到 Excel 或 Word 中的列表框或组合框
211446
(http://support.microsoft.com/kb/211446/ )
XL2000: TextColumn 属性将显示仅第一列
211896
(http://support.microsoft.com/kb/211896/ )
XL2000: 如何模拟用户窗体组合列表编辑框控件
211899
(http://support.microsoft.com/kb/211899/ )
XL2000: 设置列表框控件中的列标题的问题
213721
(http://support.microsoft.com/kb/213721/ )
XL2000: 如何从列表框或组合框中删除所有项目
213722
(http://support.microsoft.com/kb/213722/ )
XL2000: 如何使用 TextColumn 属性
213723
(http://support.microsoft.com/kb/213723/ )
XL2000: 如何从列表框中显示多个列的返回值
213746
(http://support.microsoft.com/kb/213746/ )
XL2000: 如何若要使用多个区域中填充列表框控件
213748
(http://support.microsoft.com/kb/213748/ )
XL2000: 如何填充基于另一个列表框的一个列表框
213752
(http://support.microsoft.com/kb/213752/ )
XL2000: 使用 AddItem 方法将行来源为数据绑定时导致错误
213756
(http://support.microsoft.com/kb/213756/ )
XL2000: 使用 RemoveItem 方法与列表框或组合框控件
213759
(http://support.microsoft.com/kb/213759/ )
XL2000: 如何确定列表框中选定项
组合框控件
作为下拉列表框或组合框,您可以在其中您可以使用组合框控件在列表中选择一个值或键入一个新值。样式属性确定是否组合框控件就像一个下拉列表框或组合框。
注意列表框控件上一节中的所有示例可以也都应用于组合框控件中,除"如何获取中的选定的项目本示例选择列表框控件的多个"。
如何向列表中添加新项,如果该组合框控件未绑定到的工作表
当您键入一个值,在组合框控件的列表中已不存在的时可能要向列表中添加新的值。若要添加如果组合框控件未绑定到工作表中,组合框控件中键入新值,请按照下列步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 在用户窗体中添加一个组合框控件。
5. 在上 插入 菜单上,单击模块 若要插入模块工作表。
6. 在代码窗口中,键入以下代码:
Sub PopulateComboBox()
Dim MyArray As Variant
Dim Ctr As Integer
MyArray = Array("Apples" "Oranges" "Peaches" "Bananas" "Pineapples")
For Ctr = LBound(MyArray) To Ubound(MyArray)
UserForm1.ComboBox1.AddItem MyArray(Ctr)
Next
UserForm1.Show
End Sub7.在用户窗体中添加命令按钮控件。
8.双击 命令按钮 若要控制显示代码窗口中的命令按钮控件。
9.在代码窗口中,键入下面的代码为CommandButton1 的单击事件:
Private Sub CommandButton1_Click()
Dim listvar As Variant
listvar = ComboBox1.List
On Error Resume Next
'' If the item is not found in the list...
If IsError(WorksheetFunction.Match(ComboBox1.Value listvar 0)) Then
'' add the new value to the list.
ComboBox1.AddItem ComboBox1.Value
End If
End Sub
10. 在上 工具 菜单上,单击宏单击 PopulateListBox然后单击运行.
填充组合框控件,并将用户窗体显示。
11. 在组合框控件中,键入 Mangoes (或任何值已在列表中)。
12. 单击 CommandButton1.
键入新值将显示在列表的末尾。
如何向列表中添加一个新项,如果组合框控件所绑定到的工作表
当用户键入一个值,在组合框控件的列表中已不存在的时您可能需要向列表中添加新的值。若要添加在列表中,组合框控件中键入新值,请执行以下步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在工作表 Sheet1 上单元格 a1: a5,键入想要的值使用填充组合框控件。
3. 选择工作表 Sheet1 上的单元格 a1: a5。
4. 在上 插入 菜单上指向名称然后单击 定义.
在中在工作簿中的名称 框中键入 ListRange 然后单击 确定.这将创建ListRange定义的名称。可用于ListRange的已定义的名称的组合框控件的行来源属性绑定到该工作表。
5. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
6. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
7. 在用户窗体中添加一个组合框控件。
8. 在中 属性 对于ComboBox1,请键入 工作表 Sheet1!ListRange 为行来源 属性。
9. 在用户窗体中添加命令按钮控件。
10. 双击 命令按钮 若要控制显示代码窗口中的命令按钮控件。
11. 在代码窗口中,键入下面的代码为CommandButton1 的单击事件:
Private Sub CommandButton1_Click()
Dim SourceData As Range
Dim found As Object
Set SourceData = Range("ListRange")
Set found = Nothing
'' Try to find the value on the worksheet.
Set found = SourceData.Find(ComboBox1.Value)
'' If the item is not found in the list...
If found Is Nothing Then
'' redefine ListRange.
SourceData.Resize(SourceData.Rows.Count + 1 1).Name = "ListRange"
'' Add the new item to the end of the list on the worksheet.
SourceData.Offset(SourceData.Rows.Count 0).Resize(1 1).Value _
= ComboBox1.Value
'' Reset the list displayed in the ComboBox.
ComboBox1.RowSource = Range("listrange").Address(external:=True)
End If
End Sub
12. 在上 运行 菜单上,单击 运行子过程/用户窗体.
用户窗体将显示在工作表 Sheet1 上。
13. 在组合框控件中,键入一个值,在列表中已不存在的。
14. 单击 CommandButton1.
在组合框控件中键入的新项添加到列表中,并在组合框控件所绑定到的列表范围扩展到单元格 A1:A6。
如何显示一个组合框控件的列表,用户窗体出现时
有时,可能显示组合框控件的列表,用户窗体首次出现时很有用。下面的示例使用激活用户窗体的事件。若要显示组合框控件的列表,请按照下列步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在工作表 Sheet1 上单元格 a1: a5,键入想要的值使用填充组合框控件。
3. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
4. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
5. 在用户窗体中添加一个组合框控件。
6. 在中 属性 对于ComboBox1,请键入 工作表 Sheet1!A1: A5 为行来源 属性。
7. 双击 用户窗体 若要显示用户窗体的代码窗口。
8. 在代码窗口中,键入下列命令按钮的 Click事件的代码:
Private Sub UserForm_Activate()
ComboBox1.DropDown
End Sub9.在上 运行 菜单上,单击 运行子过程/用户窗体.
用户窗体将显示在 Sheet1 上,您可以查看该列表为ComboBox1。
如何在另一个组合框控件中进行选择时显示一个组合框控件的列表
要在另一个组合框控件中进行选择时自动显示一个组合框控件的列表,请按照下列步骤:
1. 启动 Excel,然后打开一个新的空白工作簿。
2. 在工作表 Sheet1 上单元格 a1: a10,键入想要的值使用填充组合框控件。
3. 在插入菜单上单击工具用户窗体插入工作簿中的用户窗体。.
4. 向用户窗体中添加文本框控件。.
5. 在模块的代码窗口中,键入以下代码:
Sub DropDown_ComboBox()
UserForm1.ComboBox2.DropDown
End Sub
6.在TextBox控件 的PasswordChar属性中,键入
7. 向用户窗体添加一个命令按钮控件。
8. 双击要打开用户窗体代码窗口的命令按钮控件。
9. 在代码窗口中,键入下列CommandButton1 Click事件的代码:
10. 单击运行菜单上的运行子过程/用户窗体
Private Sub ComboBox1_Click()
Application.OnTime Now "DropDown_ComboBox"
End Sub11.用户窗体中添加第二个组合框控件。
12.单击该命令按钮控件。
13.在上 运行 菜单上,单击 运行子过程/用户窗体.
当您单击ComboBox1列表中的项目时, ComboBox2的列表会自动出现。
有关其他信息有关组合框控件,请单击下面的文章编号,以查看Microsoft 知识库中相应的文章:
161598
(http://support.microsoft.com/kb/161598/ )
关: 如何将数据添加到 Excel 或 Word 中的列表框或组合框
211446
(http://support.microsoft.com/kb/211446/ )
XL2000: TextColumn 属性将显示仅第一列
211899
(http://support.microsoft.com/kb/211899/ )
XL2000: 设置列表框控件中的列标题的问题
213717
(http://support.microsoft.com/kb/213717/ )
XL2000: 运行时错误使用组合框下拉列表的方法
213718
(http://support.microsoft.com/kb/213718/ )
XL2000: 如何显示时显示的用户窗体是一个组合框列表
213721
(http://support.microsoft.com/kb/213721/ )
XL2000: 如何从列表框或组合框中删除所有项目
213722
(http://support.microsoft.com/kb/213722/ )
XL2000: 如何使用 TextColumn 属性
213752
(http://support.microsoft.com/kb/213752/ )
XL2000: 使用 AddItem 方法将行来源为数据绑定时导致错误
213756
(http://support.microsoft.com/kb/213756/ )
XL2000: 使用 RemoveItem 方法与列表框或组合框控件
框架控件
宏的过程中 a1: 单元格 e5 在 Sheet1 上一次将这些值添加到ListBox1一个循环。
如何循环访问的框架控件上的所有控件
若要使用For each...下一步循环访问框架控件中的所有控件,请执行以下步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 将框架控件添加到用户窗体中。
5. 选项按钮控件添加到框架控件中。
重复此步骤可在框架控件中添加两个选项按钮控件。
6. 双击 框架 若要打开的控件框架控件的代码窗口。
7. 在代码窗口中,键入下面的代码框架单击事件:
Private Sub Frame1_Click()
Dim Ctrl As Control
For Each Ctrl In Frame1.Controls
Ctrl.Enabled = Not Ctrl.Enabled
Next
End Sub
8. 在上 运行 菜单上,单击 运行子过程/用户窗体.
9. 在用户窗体中,单击 框架控件。
若要更改基于所选的选项卡上的图像控件的背景色属性,请按照下列步骤操作:
数值调节钮控件
数值调节钮控件组可用于在一组选项之间的一个选择。您可以使用以下方法对组选项按钮控件:
•框架控件
•组名称属性
注意
在
值、
是
XL2000: 如何使用 TabStrip 控件在用户窗体上
真正
价值指示选定
选项按钮
。
关闭
值、
否
值和
False
值表明未选择的
选项按钮
。
如何确定选择框架控件上的选项按钮控件时的数值调节钮控件
OptionButtons控件通过使用框架控件时,您可以确定选择的循环中的所有控件的数值调节钮控件框架控件,并检查每个控件的Value属性。要确定所选的选项按钮控件,请执行以下步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 将框架控件添加到用户窗体中。
5. 选项按钮控件添加到框架控件中。
重复此步骤可在框架控件中添加两个选项按钮控件。
6. 添加框架控制用户窗体上的命令按钮控件。
7. 双击 命令按钮 若要控制显示用户窗体的代码窗口。
8. 在代码窗口中,键入下面的代码为CommandButton1 的单击事件:
Private Sub CommandButton1_Click()
For Each x In Frame1.Controls
If x.Value = True Then
MsgBox x.Caption
End If
Next
End Sub
9. 在上 运行 菜单上,单击 运行子过程/用户窗体.
10. 在中 用户窗体单击一个选项按钮控件,然后单击CommandButton1.
出现一个消息框包含的标题的当前所选的选项按钮控件。
如何确定已选择的选项按钮控件
下面的目的是示例的确定在组中选择的选项按钮控件。若要创建具有用户窗体两个组的选项按钮控件,请执行以下步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 将框架控件添加到用户窗体中。
5. 在框架控件中添加选项按钮控件。
重复此步骤可在框架控件中添加两个选项按钮控件。
6. 对于每个选项按钮控件,请键入 Group1 在组名称属性中。
7. 重复步骤 4 和 5,创建第二个框架控件包含三个选项按钮控件。
8. 对于第二个框架控件中的每个选项按钮控件,请键入 命令 在组名称属性中。
9. 添加用户之外的框架控件的窗体上的命令按钮控件。
10. 双击 命令按钮 若要控制显示用户窗体的代码窗口。
11. 在代码窗口中,键入下面的代码为CommandButton1 的单击事件:
Private Sub CommandButton1_Click()
Dim x As Control
'' Loop through ALL the controls on the UserForm.
For Each x In Me.Controls
'' Check to see if "Option" is in the Name of each control.
If InStr(x.Name "Option") Then
'' Check Group name.
If x.GroupName = "Group1" Then
'' Check the status of the OptionButton.
If x.Value = True Then
MsgBox x.Caption
Exit For
End If
End If
End If
Next
End Sub12.在上 运行 菜单上,单击 运行子过程/用户窗体.
13. 在用户窗体,请单击 Group1 中的一个选项按钮控件,然后单击CommandButton1.
将出现一个消息框,其中包含当前选定的选项按钮控件的标题。
有关其他信息选项按钮控件,单击下面的文章编号,以查看文章在 Microsoft 知识库:
213724
(http://support.microsoft.com/kb/213724/ )
XL2000: 使用选项按钮的 TripleState 属性的问题
复选框控件
复选框控件可用于指示一个值,则返回 true 或 false。出现带有复选标记的复选框控件显示的值为,则返回 true。没有复选标记会显示一个复选框显示的值为False。TripleState属性的值为True,如果复选框控件还可以为 Null的值。具有null值的复选框控件显示为不可用。
注意在值、是值和的真正价值指示选定复选框控件。关闭值、否值和False值表明已清除的复选框控件。
如何检查一个复选框控件的值
若要使用Value属性返回的复选框控件的当前值,请按照下列步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 在用户窗体中添加一个复选框控件。
5. 在CheckBox1属性列表中,选择 则返回 true 为TripleState属性。
6. 双击 复选框 若要控制显示代码窗口中的复选框控件。
7. 在代码窗口中,键入下面的代码是 CheckBox1 更改事件:
Private Sub CheckBox1_Change()
Select Case CheckBox1.Value
Case True
CheckBox1.Caption = "True"
Case False
CheckBox1.Caption = "False"
Case Else
CheckBox1.Caption = "Null"
End Select
End Sub8.在上 运行 菜单上,单击 运行子过程/用户窗体.
当您单击 复选框 控件,复选框控件更改以反映当前值的标题。
切换按钮控件
切换按钮控件都有不同的命令按钮控件的外观,直到您单击它。当您单击切换按钮控件时,它似乎是按下或下移至子类。切换按钮控件的Value属性为True时,该按钮被选定 ;为 False时未选中按钮。TripleState属性的值为True,如果切换按钮控件还可以为 Null的值。切换按钮控件的值为空,将显示为不可用。
注意在值、是值和的真正价值指示切换按钮控件被选定。关闭值、否值和False值表明未选择的切换按钮控件。
如何获取一个切换按钮控件的值
若要获取的切换按钮控件的值,请执行以下步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 添加用户窗体上的切换按钮控件。
5. 在用户窗体中添加一个标签控件。
6. 双击 切换按钮 若要控制打开代码窗口中的切换按钮控件。
7. 在代码窗口中,键入下面的代码为ToggleButton1Click事件:
Private Sub ToggleButton1_Click()
If ToggleButton1.Value = True Then
'' Set UserForm background to Red.
Me.BackColor = RGB(2550 0)
Else
'' Set UserForm background to Blue.
Me.BackColor = RGB(00 255)
End If
End Sub8.在上 运行 菜单上,单击 运行子过程/用户窗体.
当您单击切换按钮控件,用户窗体的更改的背景色。
如何创建一组互斥切换按钮控件
本示例将变量设置为使用MouseUp事件并调用ExclusiveToggleButtons的过程。ExclusiveToggleButtons过程确定已选中,并且会取消其他的切换按钮控件。若要创建一组互斥切换按钮控件,请执行以下步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击模块.
4. 在模块的代码窗口中,键入以下代码:
'' Variable that holds the name of the ToggleButton that was clicked.
Public clicked As String
Sub ExclusiveToggleButtons()
Dim toggle As Control
'' Loop through all the ToggleButtons on Frame1.
For Each toggle In UserForm1.Frame1.Controls
'' If Name of ToggleButton matches name of ToggleButton
'' that was clicked...
If toggle.Name = clicked Then
''...select the button.
toggle.Value = True
Else
''...otherwise clear the selection of the button.
toggle.Value = False
End If
Next
End Sub5.在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
6. 将框架控件添加到用户窗体中。
7. 在框架控件中添加切换按钮控件。
重复此步骤可在框架控件中添加两个切换按钮控件。
8. 双击 框架 若要显示的控件用户窗体的代码窗口。
9. 在模块的代码窗口中,键入下面的代码切换按钮 MouseUp事件:
Private Sub ToggleButton1_MouseUp(ByVal Button As Integer _
ByVal Shift As Integer ByVal X As Single ByVal Y As Single)
clicked = ToggleButton1.Name
Application.OnTime Now "ExclusiveToggleButtons"
End Sub
Private Sub ToggleButton2_MouseUp(ByVal Button As Integer _
ByVal Shift As Integer ByVal X As Single ByVal Y As Single)
clicked = ToggleButton2.Name
Application.OnTime Now "ExclusiveToggleButtons"
End Sub
Private Sub ToggleButton3_MouseUp(ByVal Button As Integer _
ByVal Shift As Integer ByVal X As Single ByVal Y As Single)
clicked = ToggleButton3.Name
Application.OnTime Now "ExclusiveToggleButtons"
End Sub10.在上 运行 菜单上,单击 运行子过程/用户窗体.
当您单击切换按钮控件时,则取消先前选定的切换按钮控件。
TabStrip 控件
若要查看的信息的一组不同的组使用TabStrip控件控件。
如何以编程方式控制 TabStrip 控件
若要更改基于所选的选项卡上的图像控件的背景色属性,请按照下列步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic 编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 向用户窗体添加TabStrip控件。
5. 添加涵盖TabStrip控件的图像控件,但不是包括选项卡。
6. 在 Image1 的属性窗格中,键入& H000000FF & 在背景色属性。
7. 双击 TabStrip 若要打开的控件TabStrip控件的代码窗口。
8. 在代码窗口中,键入下面的代码更改 TabStrip1事件:
Private Sub TabStrip1_Change()
Dim i As Integer
i = TabStrip1.SelectedItem.Index
Select Case i
Case 0
'' If Tab1 is selected change the color of Image control to Red.
Image1.BackColor = RGB(2550 0)
Case 1
'' If Tab2 is selected change the color of Image control to Green.
Image1.BackColor = RGB(0255 0)
End Select
End Sub9.在上 运行 菜单上,单击 运行子过程/用户窗体.
根据TabStrip控件处于活动状态中的页的图像控件更改颜色。
有关其他信息 TabStrip控制,请单击下面的文章编号,以查看在文章微软知识文库:
213254
(http://support.microsoft.com/kb/213254/ )
XL2000: 如何使用 TabStrip 用户窗体上控件
多页控件
使用Value属性来返回一个复选框控件的当前值,请按照下列步骤操作:
如何以编程方式控制多页控件
要添加一个多页控件并使用宏来对其进行控制,请执行以下步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 在用户窗体中添加一个多页控件。
5. 在多页控件上为第一页中添加一个标签控件。
6. 将文本框控件添加到第一页,在多页控件上。
7. 在多页控件中,单击 Page2然后重复步骤 5和 6 以添加一个标签控件和一个文本框控件。
8. 双击 多页 若要打开的控件多页控件的代码窗口。
9. 在代码窗口中,键入下面的代码更改 MultiPage1事件:
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 Sub10.在代码窗口中,键入下面的代码在用户窗体初始化事件:
Private Sub UserForm_Initialize()
'' Force Page1 to be active when UserForm is displayed.
MultiPage1.Value = 0
Label1.Caption = ""
End Sub11.在上 运行 菜单上,单击 运行子过程/用户窗体.
在第一页上文本框控件中,键入 测试.当您单击 Page2 选项卡上,清除TextBox2 ,和标签 2的标题改为在第一页上的TextBox1中所做的条目 ("Test")。
如何通过使用多页控件创建一个向导界面
当某个任务需要几个增量的步骤的向导界面可以是非常有效。您可以使用多页控件创建向导界面,而不是使用多个用户窗体。本示例包含三个页面的多页控件的操作对象。附加到的过程初始化事件添加的用户窗体禁用 Page2 和 Page3,并强制第一页处于活动状态的多页控件。
注意多页控件的页索引使用Pages集合,该集合中的第一页时页 0。这过程还设置的命令按钮控件的标题,并将禁用<>按钮。
注意分配给CommandButton1的Click事件过程控制功能的<>按钮。分配给CommandButton2的Click事件过程控制功能的下一步 >按钮。若要创建一个向导界面使用多页控件,请按照下列步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 在用户窗体中添加一个多页控件。
5. 用鼠标右键单击 第一页 选项卡,然后单击新页 将 Page3 添加到多页控件中。
6. 添加用户不在多页控件的窗体上的命令按钮控件。
重复此步骤可添加用户窗体中的第二个命令按钮控件。
7. 双击 用户窗体 若要打开的代码用户窗体窗口。
8. 在代码窗口中,键入下面的代码在用户窗体初始化事件:
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 = "
CommandButton1.Enabled = False
CommandButton2.Caption = "Next>"
End Sub
'' Procedure for the "
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
9.在上 运行 菜单上,单击 运行子过程/用户窗体.
当您单击 下一步 >,已激活 Page2 和" <> 按钮将变为可用。当您单击 下一步 > 第二次,Page3 处于激活状态,并将标题为 CommandButton2 更改为"完成"。
滚动条控件
要更改所显示的值时,您可以使用滚动条控件另一控件如标签控件。
如何更改基于滚动条控件的值的标签控件
要更改滚动条控件的Value属性的当前设置标签控件的标题属性,请执行以下步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 在用户窗体中添加滚动条控件。
5. 在用户窗体中添加一个标签控件。
6. 双击 滚动条 若要打开的控件滚动条控件的代码窗口。
7. 在代码窗口中,键入下面的代码更改 ScrollBar1事件:
Private Sub ScrollBar1_Change()
Label1.Caption = ScrollBar1.Value
End Sub8.在上 运行 菜单上,单击 运行子过程/用户窗体.
通过使用滚动条控件滚动时,标签 1将更新为滚动条控件的当前值。
数值调节钮控件
数值调节钮控件,滚动条控件一样,经常使用递增或递减另一控件如标签控件的值。SmallChange属性确定多少数值调节钮控件值发生更改时单击。
如何添加一个递增的数值调节钮控件或递减一文本框控件中存储的日期
要添加一个递增的数值调节钮控件或递减一文本框控件中存储的日期,请执行以下步骤:
1.启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 将数值调节钮控件添加到用户窗体中。
5. 在用户窗体中添加文本框控件。
6. 双击 数值调节钮 若要控制打开代码窗口中的数值调节钮控件。
7. 在代码窗口中,键入下面的代码为SpinButton1 旋转事件:
Private Sub SpinButton1_SpinUp()
TextBox1.Text = DateValue(TextBox1.Text) + 1
End Sub
8. 在代码窗口中,键入下面的代码为SpinButton1 降速事件:
Private Sub SpinButton1_SpinDown()
TextBox1.Text = DateValue(TextBox1.Text) - 1
End Sub
9. 在代码窗口中,键入下面的代码在用户窗体初始化事件:
Private Sub UserForm_Initialize()
TextBox1.Text = Date
End Sub
10. 在上 运行 菜单上,单击 运行子过程/用户窗体.
用户窗体出现时,在TextBox1中显示当前日期。单击数值调节钮控件后,日期是增加或减少一个某一天。
在此示例中,如果您更改SmallChange属性的SpinButton1,则不会影响TextBox1中的条目被更改,单击SpinButton1时的天数。天数仅由该过程,您附加到旋转事件和SpinButton1降速事件。
有关其他信息数值调节钮控制,请单击下面的文章编号,以查看文章在 Microsoft 知识库:
213224
(http://support.microsoft.com/kb/213224/ )
XL2000: Visual Basic 示例使用带有日期的旋转按钮
RefEdit 控件
RefEdit控件是模拟的引用框的行为内置到 Excel 中。值属性可用于获取存储在RefEdit控件中的当前单元格地址。
如何填充基于您使用 RefEdit 控件来选择范围的单元格区域
若要使用RefEdit控件填充单元格,请按照下列步骤:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 将RefEdit控件添加到用户窗体中。
5. 在用户窗体中添加命令按钮控件。
6. 双击 命令按钮 若要控制打开代码窗口中的命令按钮控件。
7. 在代码窗口中,键入下面的代码为CommandButton1 的单击事件:
Private Sub CommandButton1_Click()
Dim MyRange As String
MyRange = RefEdit1.Value
Range(MyRange).Value = "test"
Unload Me
End Sub8.在上 运行 菜单上,单击 运行子过程/用户窗体.
UserFormappears。
9. 单击RefEdit控件中的按钮。
请注意,折叠用户窗体。
10. 选择单元格 a1: a5,如区域,然后单击展开用户窗体RefEdit控件中的按钮。
11. 单击 CommandButton1.
用户窗体关闭,您现在所选的单元格中包含单词"测试"。
对于RefEdit 控件中,有关的其他信息单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
213776
(http://support.microsoft.com/kb/213776/ )
XL2000: 如何对用户窗体中使用 RefEdit 控件
图像控件
图像控件的用途是在用户窗体上显示的图片。分配图片为图像控件在运行时,使用LoadPicture函数。
如何将图片加载到一个图像控件
若要将会提示您选择的图片时加载的图像控件,单击图像控件,请按照下列步骤操作:
1. 启动 Excel,并打开一个新的空白工作簿。
2. 在上 工具 菜单上指向宏然后单击 Visual Basic编辑器.
3. 在上 插入 菜单上,单击用户窗体 若要在工作簿中插入用户窗体。
4. 添加图像控件在用户窗体上。
5. 双击 图像 若要打开的控件图像控件的代码窗口。
6. 在代码窗口中,键入下面的代码为Image1 的单击事件:
Private Sub Image1_Click()
Dim fname As String
'' Display the Open dialog box.
fname = Application.GetOpenFilename(filefilter:= _
"Bitmap Files(*.bmp)*.bmp" Title:="Select Image To Open")
'' If you did not click Cancel...
If fname <> "False" Then
'' Load the bitmap into the Image control.
Image1.Picture = LoadPicture(fname)
'' Refresh the UserForm.
Me.Repaint
End If
End Sub
7. 在上 运行 菜单上,单击 运行子过程/用户窗体.
此时将显示用户窗体。
8. 单击 图像 控件。
当单击该图像控件, 为打开选择图像 对话框此时将显示,然后您可以选择要插入到一个位图文件控件。
有关图像控件的其他信息,请单击下面的文章编号,以查看 Microsoft 知识中的文章基址:
213732
(http://support.microsoft.com/kb/213732/ )
XL2000: 使用 LoadPicture 函数使用图像控件
其他信息
对象浏览器
若要获取的切换按钮控件的值,请按照下列步骤操作:
1. 启动 Excel,然后打开一个新的空白工作簿。.
2. 在上 视图 菜单上,单击 对象浏览器.
3. 在插入菜单上单击工具用户窗体插入工作簿中的用户窗体。.
当您单击切换按钮控件,用户窗体更改的背景色。
有关其他信息如何在计算机上安装 Microsoft Excel 帮助,单击下列选项:文章编号,以查看 Microsoft 知识库中相应的文章:
231946
(http://support.microsoft.com/kb/231946/ )
OFF2000: 如何添加或删除单个的 Office 程序或组件