用户窗体的.doc_第1页
用户窗体的.doc_第2页
用户窗体的.doc_第3页
用户窗体的.doc_第4页
用户窗体的.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用户窗体的基础知识用户窗体的显示方式用于以编程方式显示用户窗体的语法是下列: UserFormName.Show若要显示名为 UserForm1 用户窗体,使用以下代码: UserForm1.Show,您可以加载到内存用户窗体而不实际显示它。 可能需要复杂的用户窗体多个要显示的秒数。 因为您可以预先用户窗体加载到内存中,您可以决定何时会导致这种开销。 而不显示它加载到内存的 UserForm1,使用下面的代码: Load UserForm1显示用户窗体,您必须使用了以前显示的 显示 方法。 如何暂时隐藏用户窗体如果要暂时隐藏用户窗体,使用 隐藏 方法。 您可能希望隐藏用户窗体,如果您的应用程序涉及到用户窗体之间移动。 若要隐藏用户窗体,使用下面的代码: UserForm1.Hide如何从内存中删除用户窗体若要从内存中删除用户窗体使用 卸载 语句。 若要卸载 UserForm1 命名的用户窗体,使用下面的代码: Unload UserForm1如果您卸载了用户窗体与用户窗体相关联,则与在用户窗体上某个控件关联的事件过程中 (渚嬪的方式 单击 命令按钮 ),可以使用Me关键字而不是用户窗体的名称。 若要使用Me关键字卸载用户窗体,使用下面的代码: Unload Me如何使用用户窗体事件用户窗体支持许多预定义的事件,您可以将附加 VBA 过程。 该事件时则该过程,您附加到该事件的运行。 由用户执行的单个操作可以启动多个事件。 最经常使用的用户窗体的事件包括 初始化 事件、, Click 事件和 终止 事件。 请注意 VBA 模块包含事件过程可能被称为隐藏用户窗体模块。 在模块包含事件过程中不可见 Visual Basic 编辑器的 Microsoft 项目资源管理器窗口的 模块 集合。 您必须双击用户窗体可以查看用户窗体代码模块的正文。 如何捕获用户窗体事件要捕获用户窗体事件,请按照这些步骤操作: 1. 在 Excel 中创建一个新的工作簿。 2. 在 工具 菜单上指向 宏 ,然后单击 Visual Basic 编辑器 。 3. 在 插入 菜单中上, 单击插入工作簿中的用户窗体的 用户窗体 。 4. 双击要显示的用户窗体的代码窗口的 用户窗体 。 5. 在模块中,键入以下代码: Private Sub UserForm_Click() Me.Height = Int(Rnd * 500) Me.Width = Int(Rnd * 750)End SubPrivate Sub UserForm_Initialize() Me.Caption = Events Events Events! Me.BackColor = RGB(10, 25, 100)End SubPrivate Sub UserForm_Resize() msg = Width: & Me.Width & Chr(10) & Height: & Me.Height MsgBox prompt:=msg, Title:=Resize EventEnd SubPrivate Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) msg = Now Unloading & Me.Caption MsgBox prompt:=msg, Title:=QueryClose EventEnd SubPrivate Sub UserForm_Terminate() msg = Now Unloading & Me.Caption MsgBox prompt:=msg, Title:=Terminate EventEnd Sub 6. 在 运行 菜单上单击 运行子过程/用户窗体 。首次加载用户窗体时宏使用 初始化 事件在用户窗体的 标题 属性改为事件事件事件! 和 背景色 属性以深蓝色。 单击用户窗体,时,触发 Click 事件。 Click 事件调整用户窗体的大小。 因为您创建一个 Resize 事件过程,您将收到两个消息框,单击用户窗体后。 就会在发生 Resize 事件两次因为 Click 事件代码更改,同时 宽度 属性和用户窗体 高度 属性。 关闭用户窗体初始化 QueryClose 事件。 QueryClose 事件显示消息框,其中包含您在代码中赋予用户窗体, 初始化 事件的标题。 您可以使用该 QueryClose 事件时要执行一组特定的操作,如果用户关闭用户窗体。 然后, 终止 事件将产生一个消息框,表明用户窗体的标题 UserForm1。 在 终止 事件从内存中删除用户窗体,并且用户窗体的标题返回到其原始的状态之后发生。 本主题由 82077802 于 2009-9-24 10:19 审核通过收藏 分享 评分 回复 引用 订阅 TOP long_xiang 如何防止用户窗体被关闭,通过使用关闭按钮运行用户窗体时, 关闭 按钮添加到用户窗体窗口的右上角。 如果要防止用户窗体被关闭,通过使用 关闭 按钮,您必须捕获 QueryClose 事件。 用户窗体是从内存中卸载之前, QueryClose 事件发生。 使用 CloseMode QueryClose 事件的参数确定如何关闭用户窗体。 vbFormControlMenu CloseMode 参数表示的 关闭 按钮被单击。 若要保持活动的用户窗体,请将 QueryClose 事件的 取消 参数设置为 True 。 要用于防止用户窗体通过使用 关闭 按钮关闭 QueryClose 事件请按照下列步骤操作: 1. 在 Excel 中创建一个新的工作簿。 2. 在 工具 菜单上指向 宏 ,然后单击 Visual Basic 编辑器 。 3. 在 插入 菜单中上, 单击插入工作簿中的用户窗体的 用户窗体 。 4. 将 命令按钮 控件添加到用户窗体中。 5. 双击要显示的用户窗体的代码窗口的 用户窗体 。 6. 在代码窗口中键入以下代码: Private Sub CommandButton1_Click() Unload MeEnd SubPrivate Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) IF CloseMode = vbFormControlMenu Then Cancel = True Me.Caption = Click the CommandButton to close Me! End IfEnd Sub7. 在 运行 菜单上单击 运行子过程/用户窗体 。当您单击 关闭 的按钮时,用户窗体未关闭。 必须单击关闭用户窗体 按钮 控件。 VBA 代码Excel 包含 15 个不同的控件,您可以在用户窗体上使用。 此部分包含以编程方式使用这些控件的各种示例。 如何使用设计模式中编辑控件当您使用 Visual Basic 编辑器设计一个对话框时,您正在使用设计模式。 设计方式,您可以编辑控件并您可以更改用户在属性窗口中窗体上控件的属性。 若要显示在 视图 菜单上的属性窗口,请单击 属性窗口 。 请注意 您在设计模式中时,控件不响应的事件。 当您运行一个对话框,用户看到的方式显示时,程序处于运行模式。 从内存中卸载用户窗体时,不保留所做的更改在运行模式中控件的属性。 请注意 控件响应在运行模式中的事件。 如何在用户窗体上的控件引用如何引用控件以编程方式取决于运行代码的 VBA 模块工作表的类型。 如果运行的代码从常规模块,语法是下列: UserFormName.Controlname.Property = Value如果要将名为 TextBox1 UserForm1 名为 Bob 的值的用户窗体上的 文本框 控件的 Text 属性设置,使用下面的代码: UserForm1.TextBox1.Text = Bob如果代码是在用户窗体或控件的事件启动的过程中,您不必非要指向用户窗体的名称。 而,使用下面的代码: TextBox1.Text = Bob时代码附加到对象,代码附加到的其中一个对象的事件。 许多在本文的示例中,可将代码附加到 按钮 对象的 Click 事件。 列兵 发短消息 加为好友 long_xiang 当前离线 UID3052帖子61精华0积分19阅读权限10在线时间3 小时注册时间2009-7-12最后登录2009-10-16列兵2# 发表于 2009-9-24 10:23 | 只看该作者 回复 引用 TOP long_xiang 发短消息 加为好友 long_xiang 当前离线 UID3052帖子61精华0积分19阅读权限10在线时间3 小时注册时间2009-7-12最后登录2009-10-16列兵3# 发表于 2009-9-24 10:24 | 只看该作者 标签控件标签 控件主要用于描述在用户窗体上的其他控件。 用户窗体运行时,不能由用户编辑一个 Label 控件。 使用 标题 属性设置或返回一个 Label 控件中的文本。 格式设置 Label 控件的其他常用的属性包括 Font 属性和 前景色 属性。 如何使用 WITH 语句设置标签控件的格式要使用 WITH 语句更改的 标签 控件的属性,请岃 鎸夌収涓嬪垪姝 鎿嶄綔: 1. 启动 Excel,然后打开一个新的空白工作簿。 2. 在 工具 菜单上指向 宏 ,然后单击 Visual Basic 编辑器 。 3. 在 插入 菜单中上, 单击插入工作簿中的用户窗体的 用户窗体 。 4. 向用户窗体添加一个 Label 控件。 5. 将 命令按钮 控件添加到用户窗体中。 6. 双击以打开代码窗口的用户窗体 按钮 控件。 7. 在代码窗口中键入 CommandButton1 Click 事件以下代码: 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(0, 0, 255) End WithEnd Sub8. 在 运行 菜单上单击 运行子过程/用户窗体 。 9. 单击该 按钮 。文本这是标签示例 1出现在 标签 控件中加粗黑体字体大小为 14。 文本框控件文本框 控件经常用于收集用户的输入。 文本 属性包含由 文本框 控件中,项。 如何使用文本框控件验证密码如果将 文本框 控件的 PasswordChar 属性设置,它将成为屏蔽的编辑控件。 每个 文本框 控件中键入的字符将替换为以可视方式您指定的字符。 要使用 TextBox 控件验证密码,请璇锋寜鐓 笅鍒楁 楠 搷浣滐細 1. 启动 Excel,然后打开一个新的空白工作簿。 2. 在 工具 菜单上指向 宏 ,然后单击 Visual Basic 编辑器 。 3. 在 插入 菜单中上, 单击插入工作簿中的用户窗体的 用户窗体 。 4. 将 文本框 控件添加到用户窗体中。 5. 在 视图 菜单中上, 单击 属性 ,以使属性窗口。 6. 在 文本框 控件的 PasswordChar 属性中,键入 * 。 请注意 您正将值改为星号。 7. 将 命令按钮 控件添加到用户窗体中。 8. 双击以打开代码窗口的用户窗体 按钮 控件。 9. 在代码窗口中键入 CommandButton1 Click 事件以下代码: 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 IfEnd Sub10. 在 运行 菜单上单击 运行子过程/用户窗体 。 11. 键入该密码 userform 文本框 控件。 12. 单击 命令按钮 控件。此的示例对于密码是userform。 如果您键入一个不正确的密码,您会收到一个消息框,指出您的密码不正确、 文本框 控件已清除,然后重新键入密码。 当您键入正确的密码时, 您会收到一欢迎使用条消息,并关闭用户窗体。 回复 引用 TOP long_xiang 发短消息 加为好友 long_xiang 当前离线 UID3052帖子61精华0积分19阅读权限10在线时间3 小时注册时间2009-7-12最后登录2009-10-16列兵4# 发表于 2009-9-24 10:25 | 只看该作者 命令按钮控件可以使用启动 VBA 过程的一个 命令按钮 控件。 在 VBA 过程通常附加到 命令按钮 控件的 Click 事件。 若要用于 Click 事件发生时运行一个过程的 命令按钮 控件,请按照下列步骤操作: 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 的控件更改每次单击它。列表框 控件的目的是为用户提供的项目若要从选择列表中。 您可以将项目列表中的为 列表框 控件在 Excel 工作表上的存储。 若要填充工作表上单元格的范围 列表框 控件,使用 行来源 属性。 当您使用 MultiSelect 属性时,您可以接受多个选定内容设置 列表框 控件。 如何从列表框控件中获取当前选定的项返回当前选定的项中使用 Value 属性的 列表框 控件。 要在单个选择 列表框 控件中返回当前选定的项,请按照这些步骤操作: 1. 启动 Excel,然后打开一个新的空白工作簿。 2. 在工作表 Sheet1 上单元格 A1:A5,键入要使用来填充 列表框 控件的值。 3. 在 工具 菜单上指向 宏 ,然后单击 Visual Basic 编辑器 。 4. 在 插入 菜单中上, 单击插入工作簿中的用户窗体的 用户窗体 。 5. 将 列表框 控件添加到用户窗体中。 6. 双击 列表框 控件显示 列表框 控件的代码窗口。 7. 在代码窗口中键入 ListBox1 Click 事件以下代码: Private Sub ListBox1_Click() MsgBox ListBox1.ValueEnd Sub 8. 在 运行 菜单上单击 运行子过程/用户窗体 。当,请单击列表中的项目时,当前选定的项将出现一个消息框。 濡備綍鑾峰彇多个选择列表框控件中的选定的项若要确定在多个选择 列表框 控件中选定的项目,必须遍历列表中的所有项目,然后查询的 选择 属性。 要将当前所选的项返回多个选择 列表框 控件中,请按照这些步骤操作: 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 Click 事件以下代码: 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 Click 事件以下代码: Private Sub CommandButton1_Click() ListBox1.RowSource = =Sheet1!A1:A5End Sub 9. 在 运行 菜单上单击 运行子过程/用户窗体 。 请注意 ListBox1 不包含任何值。 10. 单击 CommandButton1 。填充, ListBox1 填充工作表 Sheet1 上单元格 A1:A5 中值。 如何填充数组中值列表框控件本示例显示如何填充 列表框 控件与一个数组变量。 您必须为分配值从数组中 列表框 控件的一项一次。 通常,此过程要求您使用一个 For Next 循环,如一个循环结构结构。 要填充 列表框 控件与一个数组变量,请按照这些步骤操作: 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.ShowEnd Sub 7. 在 工具 菜单上单击 宏 并单击 PopulateListBox ,然后单击 运行 。PopulateListBox 过程生成一个简单数组数组,然后添加项数组中到 列表框 控件使用 AddItem 方法。 然后,用户窗体显示。 回复 引用 TOP long_xiang 发短消息 加为好友 long_xiang 当前离线 UID3052帖子61精华0积分19阅读权限10在线时间3 小时注册时间2009-7-12最后登录2009-10-16列兵5# 发表于 2009-9-24 10:25 | 只看该作者 如何使用工作表上单元格的水平区域填充列表框控件如果将的 列表框 控件 行来源 属性设置为单元格的水平区域,只是在的第一个值将将出现在 列表框 控件中。要通过使用 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.ShowEnd Sub8. 在 工具 菜单上单击 宏 并单击 PopulateListWithHorizontalRange ,然后单击 运行 。该宏的过程循环一次向 ListBox1 一值的单元格 A1:E5 Sheet1。请注意 工作表 Sheet1 上 ListBox1 不绑定到的单元格 A1:E5。 如何从绑定到多个数据列的列表框控件中返回多个值您可以设置 列表框 控件显示数据的多个列的格式。 这意味着在 列表框 控件列表的每一行上显示多个项目。 要从列表中选定项目返回多个值,请按照下列步骤操作: 1. 启动 Excel,然后打开一个新的空白工作簿。 2. 在工作表 Sheet1 上的指示的单元格中键入以下数据: 收起该表格展开该表格A1: 年B1: 区域C1: 销售瑙 g 瓟 2: 1996年B2: 鍖c2: 140瑙 g 瓟 3: 1996年B3: 鍗c3: 210瑙 g 瓟 4: 1997年B4: 鍖c4: 190瑙 g 瓟 5: 1997年B5: 鍗c5: 1953.4. 在 工具 菜单上指向 宏 ,然后单击 Visual Basic 编辑器 。 5. 在 插入 菜单中上, 单击插入工作簿中的用户窗体的 用户窗体 。 6. 向用户窗体添加一个 Label 控件。 7. 将 列表框 控件添加到用户窗体中。 8. 右键单击该 列表框 中,然后单击 属性 。 9. 键入或选择下表中列出的以下属性的 列表框 控件表示的值: Property Value - BoundColumn 1 ColumnCount 3 ColumnHeads True RowSource Sheet1!A2:A510. 双击 列表框 控件显示 列表框 控件的代码窗口。 11. 在代码窗口中键入以下代码: 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 & & Val3End Sub12. 在 运行 菜单上单击 运行子过程/用户窗体 。单击 列表框 控件中的项,标签改为显示所有三个项目的项。 如何从列表框控件所绑定到工作表中删除所有项目若要从 列表框 控件所绑定到工作表中删除所有项目,请清除存储在 行来源 属性中的值。 要从 列表框 控件所绑定到工作表中删除项,请按照下列步骤操作: 1. 启动 Excel,然后打开一个新的空白工作簿。 2. 在工作表 Sheet1 上单元格 A1:A5,键入要使用来填充 列表框 控件的值。 3. 在 工具 菜单上指向 宏 ,然后单击 Visual Basic 编辑器 。 4. 在 插入 菜单中上, 单击插入工作簿中的用户窗体的 用户窗体 。 5. 将 列表框 控件添加到用户窗体中。 6. 右键单击 列表框 控件,然后单击 属性 。 7. 在 行来源 属性键入 Sheet1! A1:A5 。 8. 将 命令按钮 控件添加到用户窗体中。 9. 双击 命令按钮 控件以显示 命令按钮 控件的代码窗口。 10. 在代码窗口中键入 CommandButton1 Click 事件以下代码: Private Sub CommandButton1_Click() ListBox1.RowSource = End Sub11. 在 运行 菜单上单击 运行子过程/用户窗体 。 用您在工作表 Sheet1 上输入的值填充 列表框 控件添加到用户窗体中的。 12. 单击 CommandButton1 。从 ListBox1 中删除所有项目。 如何从列表框控件没有绑定到工作表中删除所有项目没有从 列表框 控件中删除所有项目,如果列表没有绑定到工作表的单个 VBA 命令。 要删除从 VBA 数组填充 列表框 控件中的所有项目,请按照下列步骤操作: 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.ShowEnd Sub 7. 将 命令按钮 控件添加到用户窗体中。 8. 双击 命令按钮 控件以显示 命令按钮 控件的代码窗口。 9. 在代码窗口中键入 CommandButton1 Click 事件以下代码: Private Sub CommandButton1_Click() For i = 1 To ListBox1.ListCount ListBox1.RemoveItem 0 Next IEnd Sub10. 在 工具 菜单上单击 宏 并单击 PopulateListBox ,然后单击 运行 。填充 列表框 控件,并且用户窗体的显示然后。 11. 单击 CommandButton1 。从 ListBox1 中删除所有项目。组合框控件您可以使用该 组合框 控件,为一个下拉列表框或组合框可以在列表中选择一个值,或键入一个新值。 在 样式 属性确定是否将该 组合框 控件用作一个下拉列表框或组合框。 请注意 在 列表框 控件上一部分中的所有示例也可以都应用到除例如如何获得多个选择列表框控件中的选定的项的 组合框 控件。 如何将新项添加到列表中,如果组合框控件没有绑定到工作表当您键入一个值不是已在列表中 组合框 控件中时,您可能希望将新值添加到列表。 若要将如果 组合框 控件没有绑定到工作表在 组合框 控件中键入新值,请按照下列步骤操作: 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 Click 事件以下代码: 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 Sub10. 在 工具 菜单上单击 宏 并单击 PopulateListBox ,然后单击 运行 。填充 组合框 控件,并且用户窗体的显示然后。 11. 在 组合框 控件键入 Mangoes (或已不在列表中的任何值)。 12. 单击 CommandButton1 。现在,您键入的新值显示在列表的末尾。 回复 引用 TOP long_xiang 发短消息 加为好友 long_xiang 当前离线 UID3052帖子61精华0积分19阅读权限10在线时间3 小时注册时间2009-7-12最后登录2009-10-16列兵6# 发表于 2009-9-24 10:26 | 只看该作者 如何将新项添加到列表中,如果在组合框控件绑定到工作表用户在键入一个值不是已在列表中 组合框 控件中时您可能需要将新值添加到列表。 若要将您在列表中将 组合框 控件中键入新值,请按照下列步骤操作: 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 Click 事件以下代码: 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 IfEnd Sub12. 在 运行 菜单上单击 运行子过程/用户窗体 。 用户窗体显示在 Sheet1 上。 13. 组合框 控件中键入已不在列表中的值。 14. 单击 CommandButton1 。在 组合框 控件中键入新的项目被添加到列表,并且 组合框 控件所绑定到的列表扩展到包括单元格 A1:A6。 如何显示一个组合框控件的列表,用户窗体出现时有时,可能显示在 组合框 控件的列表,用户窗体第一次出现时很有用。 下面的示例使用 Activate 事件的用户窗体。 要显示 组合框 控件的列表,请按照下列步骤操作: 1. 启动 Excel,然后打开一个新的空白工作簿。 2. 在工作表 Sheet1 上单元格 A1:A5,键入要用于填充 组合框 控件的值。 3. 在 工具 菜单上指向 宏 ,然后单击 Visual Basic 编辑器 。 4. 在 插入 菜单中上, 单击插入工作簿中的用户窗体的 用户窗体 。 5. 将 组合框 控件添加到用户窗体中。 6. 在 属性 为 ComboBox1 ,键入 Sheet1! A1:A5 为 行来源 属性。 7. 双击要显示的用户窗体的代码窗口的 用户窗体 。 8. 在代码窗口中键入 按钮单击 事件的以下代码: Private Sub UserForm_Activate() ComboBox1.DropDown End Sub9. 在 运行 菜单上单击 运行子过程/用户窗体 。用户窗体显示在 Sheet1 中,您可以看到列表 ComboBox1 的。 如何在另一个组合框控件中进行选择时显示的一个组合框控件列表要在另一个 组合框 控件中进行选择时,会自动显示一个 组合框 控件的列表,请按照下列步骤操作: 1. 启动 Excel,然后打开一个新的空白工作簿。 2. 在工作表 Sheet1 上单元格 A1:A10 中, 键入要用于填充 组合框 控件的值。 3. 在 工具 菜单上指向 宏 ,然后单击 Visual Basic 编辑器 。 4. 在 插入 菜单中上, 单击 模块 。 5. 在模块的代码窗口中键入以下代码: Sub DropDown_ComboBox() UserForm1.ComboBox2.DropDownEnd Sub6. 在 插入 菜单中上, 单击插入工作簿中的用户窗体的 用户窗体 。 7. 将 组合框 控件添加到用户窗体中。 8. 在 属性 为 ComboBox1 ,键入 Sheet1! A1:A5 为 行来源 属性。 9. 双击以打开代码窗口 组合框 控件的 组合框 控件。 10. 在 组合框 控件的代码窗口中键入 组合框的 Click 事件以下代码: Private Sub ComboBox1_Click() Application.OnTime Now, DropDown_ComboBoxEnd Sub11. 将第二个 组合框 控件添加到用户窗体。 12. 在 属性 为 ComboBox2 ,键入 Sheet1! A6:A10 为 行来源 属性。 13. 在 运行 菜单上单击 运行子过程/用户窗体 。时,请单击 ComboBox1 列表中的项目, ComboBox2 列表自动显示。框架控件使用 框架 控件用户窗体中的逻辑上相关的项进行分组。 框架 控件经常用于组 选项按钮 控件。 如何循环通过框架控件上的所有控件要使用 的 EachNext 循环访问 框架 控件中的所有控件,请璇锋寜鐓 笅鍒楁 楠 搷浣滐: 1. 启动 Excel,然后打开一个新的空白工作簿。 2. 在 工具 菜单上指向 宏 ,然后单击 Visual Basic 编辑器 。 3. 在 插入 菜单中上, 单击插入工作簿中的用户窗体的 用户窗体 。 4. 将 框架 控件添加到用户窗体中。 5. 将一个 选项按钮 控件添加到 框架 控件。重复此步骤在 框架 控件中添加更多的两个 选项按钮 控件。 6. 双击以打开代码窗口 框架 控件的 框架 控件。 7. 在代码窗口中键入 框架的 Click 事件以下代码: Private Sub Frame1_Click() Dim Ctrl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论