VBA中的对话框和自定义窗体(9)

2020-04-14 23:16

图10-18显示了本窗体使用的工作表。 1. 准备如图10-18所示的工作表

2. 在工作表里添加按钮Display Form,并且给他指定宏DoStudents

3. 在VB编辑器屏幕,在当前工程里添加新模块,并设置模块的Name属性为InfoStudents 4. 在InfoStudents模块里输入下述过程DoStudents:

Sub DoStudents()

Students.Show End Sub

图10-18 Students and Exams应用程序的协助工作表

5. 返回到工作表,并点击按钮Display Form,测试DoStudents过程 6. 点击窗体右上角的关闭按钮,关闭窗体

38.给窗体Students and Exams自定义窗体编写VBA过程

自定义窗体Students and Exams包含很多VBA过程,显示在下面。这些过程的代码必须输入在窗体模块里面,双击窗体背景,激活窗体模块。 1. 从代码窗口左上角的复合框里选择“(通用)”。右边的过程选择复合框应该显示“(声

明)”,输入下述变量声明: 'Declarations Dim r As Integer Dim nr As Integer

Dim indexPlus As Integer Dim YesNo As Integer

2. 输入过程UserForm_Initialize代码,初始化窗体

Private Sub UserForm_Initialize()

'select first page of the MultiPage control 选择多页控件的第一页 'page numbering begins from zero (0) 页码编号从0开始 Me.MultiPage1.Value = 0

'choose the New option button 选择New选项按钮 optNew.Value = True

'hide three controls on startup 启动时先隐藏三个控件

lblNames.Visible = False ‘前面应该将标签Name Range命名为lblNames(原文

为lblLast)

refNames.Visible = False lboxStudents.Visible = False

'populate the Year combo box 填充Year复合框 With Me.cboxYear

.AddItem \.AddItem \.AddItem \.AddItem \End With

' populate the Major combo box 填充Major复合框 With Me.cboxMajor

.AddItem \.AddItem \.AddItem \.AddItem \

.AddItem \End With

' populate a combo box with grades 填充得分复合框 With Me.cboxGrade

.AddItem \.AddItem \.AddItem \.AddItem \.AddItem \End With

'display date in the lblDate label control 在lblDate标签里显示日期 Me.lblDate.Caption = Me.Calendar1.Value

'activate the first tab in the TabStrip control 激活TabStrip控件的第一页

Me.TabStrip1.Value = 0

'activate the SSN text box 激活SSN文字框 Me.txtSSN.SetFocus End Sub

3. 输入两个过程来控制选项按钮(optNew_Click和optActive_Click)

Private Sub optNew_Click()

lblNames.Visible = False refNames.Visible = False

lboxStudents.Visible = False Me.MultiPage1(1).Enabled = False

If lboxStudents.RowSource < > \

Me.txtSSN.Text = \Me.txtLast.Text = \Me.txtFirst.Text = \Me.cboxYear.Text = \Me.cboxMajor.Text = \Me.txtSSN.SetFocus End If

Me.txtSSN.SetFocus End Sub

Private Sub optActive_Click()

lblNames.Visible = True refNames.Visible = True refNames.SetFocus

If lboxStudents.RowSource < > \

lboxStudents.Visible = True Call lboxStudents_Change End If End Sub

4. 输入过程lboxStudents_Change和refNames_Change的代码,这些控制Students页上面的

RefEdit和列表框控件:

Private Sub lboxStudents_Change()

indexPlus = lboxStudents.ListIndex + 3

With ActiveWorkbook.Worksheets(\

Me.txtSSN.Text = Range(\Me.txtLast.Text = Range(\Me.txtFirst.Text = Range(\Me.cboxYear.Text = Range(\Me.cboxMajor.Text = Range(\Call TabStrip1_Change

Me.MultiPage1(1).Enabled = True End With End Sub

Private Sub refNames_Change()

lboxStudents.RowSource = refNames.Value lboxStudents.ListIndex = 0 lboxStudents.Visible = True

Call lboxStudents_Change End Sub

5. 输入代码来控制命令按钮OK(cmdOK_Click)和Cancel(cmdCancel_Click):

Private Sub cmdOK_Click()

If Me.optNew.Value = True Then

Me.Hide

ActiveWorkbook.Sheets(\r = ActiveSheet.UsedRange.Rows.Count nr = r + 1

Range(\Range(\Range(\Range(\Range(\Me.txtSSN.Text = \Me.txtLast.Text = \Me.txtFirst.Text = \Me.cboxYear.Text = \Me.cboxMajor.Text = \Me.txtSSN.SetFocus

'redisplay the form Me.Show Else

MsgBox \End If End Sub

Private Sub cmdCancel_Click()

Unload Me

Set Students = Nothing End Sub

6. 输入过程cboxGrade_Click来控制位于Exams页上的Grade复合框:

Private Sub cboxGrade_Click()

YesNo = MsgBox(\

vbYesNo, \

If YesNo = 6 Then

Me.lblGrade.Caption = cboxGrade.Value Select Case TabStrip1.Value

Case 0

Range(\Case 1

Range(\

Case 2

Range(\Case 3

Range(\End Select

cboxGrade.Value = \End If End Sub

7. 输入过程Calendar1_Click,如下所示:

Private Sub Calendar1_Click()

YesNo = MsgBox(\\If YesNo = 6 Then

Me.lblDate.Caption = Calendar1.Value Select Case TabStrip1.Value

Case 0

Range(\Case 1

Range(\Case 2

Range(\Case 3

Range(\

End Select End If End Sub

8. 输入过程TabStrip1_Change和MultiPage1_Change,如下所示:

Private Sub TabStrip1_Change()

indexPlus = lboxStudents.ListIndex + 3 With ActiveWorkbook.Worksheets(\

Select Case TabStrip1.Value

Case 0

' English

Me.lblGrade.Caption = Range(\Me.lblDate.Caption = Range(\Case 1

'French

Me.lblGrade.Caption = Range(\Me.lblDate.Caption = Range(\Case 2

'Math

Me.lblGrade.Caption = Range(\Me.lblDate.Caption = Range(\Case 3


VBA中的对话框和自定义窗体(9).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:安全预案(单独本)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: