VBA 常規(guī)控件

1柒爸、UserForm 基礎(chǔ)

顯示 UserForm 編程語法是:

????UserFormName?.Show

要顯示名為 UserForm1, UserForm 使用以下代碼:

????UserForm1.Show

不顯示它實際上還能加載 UserForm 裝入內(nèi)存疮胖。 復(fù)雜 UserForm 可能需要幾秒鐘以顯示。 因為預(yù)先您能加載到內(nèi)存, UserForm 可決定何時導致此開銷疮方。?

要加載到內(nèi)存 UserForm1 不顯示它, 使用以下代碼:

Load UserForm1

如何以暫時隱藏 UserForm

要隱藏 UserForm, 使用以下代碼:

UserForm1.Hide

如何從內(nèi)存刪除 UserForm

要從內(nèi)存, 刪除 UserForm 使用 Unload 語句。 要卸載, 名為 UserForm1, UserForm 使用以下代碼:

Unload UserForm1

如果您卸載 UserForm兑巾, 是與 UserForm 或者, 是與 UserForm 上控件的事件過程中 (例如, 您單擊 CommandButton 控件), 您可以使用 " 我 " 關(guān)鍵字代替的 UserForm 名稱忠荞。?

將關(guān)鍵字用于卸載 UserForm, " Me " 使用以下代碼:

Unload Me

如何使用 UserForm 事件

支持許多預(yù)定義事件蒋歌, 可以附加到 VBA 過程。

在事件發(fā)生時, 該附加到事件過程運行委煤。 單個操作由用戶執(zhí)行可初始化多事件堂油。 之間最經(jīng)常對 UserForm 使用事件是 Initialize 事件、 Click 事件, 和 Terminate 事件碧绞。

注意?包含事件過程 Visual Basic 模塊可能稱為 " 后面 " UserForm 模塊府框。 模塊包含事件過程是不可見的 VisualBasic 編輯器 Project MicrosoftInternetExplorer 窗口?Modules?集合中。 您必須雙擊正文部分 UserForm 以查看 UserForm 代碼模塊讥邻。

如何捕獲 UserForm 事件

要捕獲 UserForm 事件, 請按照下列步驟操作:

1.Excel 中創(chuàng)建新工作簿迫靖。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 计维。

4.雙擊以顯示代碼窗口對于 UserForm UserForm 袜香。

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(10, 25, 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 Sub

6.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 。

UserForm 首先加載, 時宏使用 Initialize 事件改為 " 事件事件事件 ! " 和 BackColor 屬性以深藍色的 UserForm Caption 屬性鲫惶。

當您單擊 UserForm, 您初始化 Click 事件蜈首。 調(diào)整 UserForm Click 事件。 因為您創(chuàng)建 Resize 事件, 過程單擊 UserForm 后收到兩個消息框。 因為 Click 事件代碼更改寬度屬性和 Height 屬性是 UserForm Resize 事件發(fā)生兩次欢策。

關(guān)閉 UserForm 初始化 QueryClose 事件吆寨。 QueryClose 事件顯示消息框包含標題為 Initialize 事件, 您賦予 UserForm 代碼中踩寇。 可以使用時要執(zhí)行特定的操作集如果用戶關(guān)閉 UserForm QueryClose 事件啄清。

然后生成一個消息框, 指出標題為 UserForm 是 UserForm1 Terminate 事件俺孙。 從內(nèi)存中刪除 UserForm 并返回到其原始狀態(tài)標題為 UserForm 后 Terminate 事件發(fā)生辣卒。

如何防止 UserForm 關(guān)閉通過關(guān)閉按鈕

當您運行 UserForm, 關(guān)閉 按鈕添加到 UserForm 窗口的右上角。 如果要防止 UserForm 關(guān)閉通過 關(guān)閉 按鈕, 您必須捕獲 QueryClose 事件睛榄。

QueryClose 事件 UserForm 是從內(nèi)存中卸載之前發(fā)生荣茫。?

使用 QueryClose 事件 CloseMode CloseMode 參數(shù)來確定如何 UserForm 關(guān)閉。 vbFormControlMenu 值為 CloseMode CloseMode 參數(shù)表示時场靴, 單擊 關(guān)閉 按鈕啡莉。要保持活動, UserForm 將 Cancel 取消 對 QueryClose 事件參數(shù)為 True 。 要使用 QueryClose 事件來防止 UserForm 關(guān)閉通過 關(guān)閉 按鈕, 請按照下列步驟:

1.Excel 中創(chuàng)建新工作簿旨剥。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 咧欣。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 。

4.將 CommandButton 控件添加到 UserForm轨帜。

5.雙擊以顯示代碼窗口對于 UserForm UserForm 魄咕。

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 Sub

7.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 。

當您單擊 關(guān)閉 按鈕 UserForm 未關(guān)閉阵谚。 您必須單擊 CommandButton 控件關(guān)閉 UserForm蚕礼。


注意?: 代碼包含在本文中不包含影響所有屬性和對控件事件的示例。 如果您不得不, 請使用屬性窗口要查看可供控件屬性的列表梢什。 要在?視圖?菜單上, 查看列表的屬性, 請單擊?屬性窗口?奠蹬。

如何使用設(shè)計模式來編輯控件

當您使用 " VisualBasic 編輯器來設(shè)計一個對話框, 使用設(shè)計模式。 在設(shè)計模式, 您可編輯控件和可更改屬性在屬性窗口 UserForm 上的控制嗡午。 若要顯示屬性窗口, 在 視圖 菜單上, 單擊 屬性窗口 囤躁。

當您處在設(shè)計模式?注意?控件不響應(yīng)與事件。 當您運行一個對話框荔睹, 顯示方式狸演, 用戶看到它, 程序處于運行模式。 當 UserForm 是從內(nèi)存中卸載將不會保留更改僻他, 對運行模式中控件的屬性宵距。

注意?控件請回復(fù)到事件在運行模式。

如何引用 UserForm 上控件

如何您引用控件編程取決 VisualBasic 模塊表運行代碼的類型吨拗。 如果代碼從常規(guī)模塊, 運行以下語法是:

UserFormName.Controlname.Property?=?值

例如, 如果要設(shè)置名為 TextBox 满哪, 名為到值是 Bob , UserForm1 UserForm 上 TextBox 控件的 Text 屬性使用以下代碼:

UserForm1.TextBox1.Text = "Bob"

如果代碼是通過事件的控件或者通過 UserForm, 啟動過程中是您不需要引用名為 UserForm婿斥。 而, 使用以下代碼:

TextBox1.Text = "Bob"

當向?qū)ο? 附加代碼代碼附加到之一為對象事件。 眾多, 本文示例中哨鸭, 將代碼附加到 Click 事件是 CommandButton 對象民宿。


2、標簽控件

標簽?控件主要用于描述 UserForm 上其他控件像鸡。 運行 UserForm 時?Label?控件不能編輯由用戶活鹰。 使用?Caption?屬性到設(shè)置或返回一個?Label?控件中文本。 用于格式化?Label?控件其他常用屬性包括?字體?屬性和?ForeColor?屬性只估。

如何使用 WITH 語句設(shè)置 Label 控件格式

要使用 WITH 語句來更改屬性的 Label 控件, 請按照下列步驟:

1.啟動 Excel, 并打開新空白工作簿志群。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 仅乓。

4.將 Label 控件添加到 UserForm赖舟。

5.將 CommandButton 控件添加到 UserForm蓬戚。

6.雙擊以打開代碼窗口對于 UserForm CommandButton 控件夸楣。

7.在代碼窗口, 為 CommandButton 1 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 With

End Sub

8.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 。

9.單擊 CommandButton 子漩。

文本粗 TimesNewRoman 用字體大小是 14 中 Label 控件上顯示 " Thisis 標簽示例 1 "豫喧。


3、TextBox 控件

TextBox?控件經(jīng)常用于收集來自用戶輸入幢泼。?Text?屬性包含項紧显,?TextBox?控件中進行。

如何使用 TextBox 控件來驗證密碼

如果您設(shè)置 TextBox 控件, PasswordChar 屬性的它成為 " masked - 編輯 " 控件缕棵。 由字符指定可視取代 TextBox 控件中鍵入的每個字符孵班。 要使用 TextBox 控件來驗證密碼, 請按照下列步驟:

1.啟動 Excel, 并打開新空白工作簿。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 招驴。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 篙程。

4.將 TextBox 控件添加到 UserForm。

5.在 視圖 菜單上, 單擊 屬性 以顯示屬性窗口别厘。

6.對 TextBox 控件, PasswordChar 屬性中鍵入 *

注意?您正將值改為星號虱饿。

7.將 CommandButton 控件添加到 UserForm。

8.雙擊以打開代碼窗口對于 UserForm CommandButton 控件触趴。

9.在代碼窗口, 為 CommandButton 1 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 If

End Sub

10.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 氮发。

11.在 TextBox 控件中鍵入密碼 userform 。

12.單擊 CommandButton 控件冗懦。

對于本例, 密碼是 " userform "爽冕。 如果您鍵入正確密碼, 您收到一個消息框, 指出密碼不正確披蕉, 然后重新鍵入密碼可清除 TextBox 控件, 并且颈畸。 當您鍵入正確密碼, 收到歡迎消息, 并 UserForm 關(guān)閉前塔。



4、CommandButton 控件

您可以使用 CommandButton 控制來啟動 VBA 過程承冰。 VBA 過程通常附加到 CommandButton 控件的 Click 事件华弓。 要使用 CommandButton 控件 Click 事件發(fā)生, 時, 運行過程請按照步驟:

1.啟動 Excel, 并打開新空白工作簿困乒。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 寂屏。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 。

4.將 CommandButton 控件添加到 UserForm娜搂。

5.雙擊以顯示代碼窗口對于 UserForm CommandButton 控件迁霎。

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.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 。

CommandButton 1 控件的背景顏色更改每次您單擊它百宇。


5考廉、ListBox 控件

ListBox 控件的目的是為了向用戶顯示要選擇的項目列表。 您可以存儲為 Excel 工作表上 ListBox 控件項目列表携御。 使用 RowSource 屬性來填充工作表, 上 ListBox 控件與范圍的單元格昌粤。 ListBox 控件在使用 MultiSelect 屬性, 時可設(shè)置為接受多重選擇。

如何從 ListBox 控件獲取當前選定項

使用 Value 屬性的 ListBox 控件可返回當前選定項啄刹。 要返回單項選擇 ListBox 控件, 中當前選定項請按照下列步驟操作:

1.啟動 Excel, 并打開新空白工作簿涮坐。

2.在單元格 A 1: A 5 Sheet, 鍵入了您要用于填充 ListBox 控件值。

3.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 誓军。

4.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 袱讹。

5.將 ListBox 控件添加到 UserForm。

6.雙擊 ListBox 控件以顯示代碼窗口對 ListBox 控件昵时。

7.在代碼窗口, 為 ListBox 1 Click 事件鍵入下列代碼:

Private Sub ListBox1_Click()

MsgBox ListBox1.Value

End Sub

8.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 捷雕。

當單擊列表, 中的項目與當前選定項目將出現(xiàn)一個消息框。

如何獲取多選擇 ListBox 控件中選定項

確定多選擇 ListBox 控件, 中所選項目必須循環(huán)列表, 中所有項目并再查詢 Selected 屬性壹甥。 要返回多選擇, ListBox 控件中當前選定項請按照下列步驟操作:

1.啟動 Excel, 并打開新空白工作簿救巷。

2.在單元格 A 1: A 5 Sheet, 鍵入了您要用于填充 ListBox 控件值。

3.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 盹廷。

4.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 征绸。

5.將 ListBox 控件添加到 UserForm。

6.在 視圖 菜單上, 單擊 屬性 以查看屬性窗口俄占。

7.鍵入值管怠, 對于下列 ListBox 控件屬性表示:

Property Value

----------- -----------------------

MultiSelect 1 - frmMultiSelectMulti

RowSource Sheet1!A1:A8

8.將 CommandButton 控件添加到 UserForm。

9.雙擊以顯示代碼窗口對于 UserForm CommandButton 控件缸榄。

10.在代碼窗口, 為 CommandButton 1 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.單擊 CommandButton 1 甚带。

單擊 CommandButton 1 , 后她肯, 在 ListBox 控件中選擇每個項目顯示在一個單獨的消息框佳头。 UserForm 在消息框中, 出現(xiàn)所有選定項后自動關(guān)閉。

如何使用 RowSource 屬性來填充工作表上以 ListBox 控件

要使用 RowSource 屬性來填充工作表, 上 ListBox 控件從范圍的單元格請按照下列步驟:

1.啟動 Excel, 并打開新空白工作簿晴氨。

2.在單元格 A 1: A 5 Sheet, 鍵入了您要用于填充 ListBox 控件值康嘉。

3.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 。

4.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 籽前。

5.將 ListBox 控件添加到 UserForm亭珍。

6.將 CommandButton 控件添加到 UserForm。

7.雙擊以顯示代碼窗口對于 UserForm CommandButton 控件。

8.在代碼窗口, 為 CommandButton 1 Click 事件鍵入下列代碼:

Private Sub CommandButton1_Click()

ListBox1.RowSource = "=Sheet1!A1:A5"

End Sub

9.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 。

注意?ListBox 1?不包含任何值尔艇。

10.單擊 CommandButton 1 。

ListBox 1?填充單元格 A 1: A 5 Sheet 中有值晶密。

如何填充一個 ListBox 控件數(shù)組中有值

下例顯示您如何填充以數(shù)組 ListBox 控件。 數(shù)組中每次為 ListBox 控件項必須分配值。 通常, 此過程要求您使用循環(huán)結(jié)構(gòu), 如 ForàNext 循環(huán)。 要填充以數(shù)組, ListBox 控件請按照下列步驟操作:

1.啟動 Excel, 并打開新空白工作簿粱侣。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 菜秦。

4.將 ListBox 控件添加到 UserForm甜害。

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 , 和 宏 。

PopulateListBox 過程建立簡單數(shù)組, 并數(shù)組中通過使用 AddItem 方法添加到 ListBox 控件項目眨攘。 然后, UserForm 出現(xiàn)主慰。

如何使用工作表上水平的單元格區(qū)域來填充一個 ListBox 控件

如果將 ListBox 控件的 RowSource 屬性到水平區(qū)域的單元格, ListBox 控件中第一個值只會出現(xiàn)。

要通過使用 AddItem 方法, ListBox 控件從水平區(qū)域的單元格填充請按照下列步驟操作:

1.啟動 Excel, 并打開新空白工作簿鲫售。

2.在單元格 A1:E1 Sheet, 鍵入了您要用于填充 ListBox 控件值共螺。

3.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 。

4.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 情竹。

5.將 ListBox 控件添加到 UserForm藐不。

6.在 插入 菜單上, 單擊要插入模塊表 模塊 。

7.在代碼窗口, 鍵入如下代碼:

Sub PopulateListWithHorizontalRange()

For Each x In Sheet1.Range("A1:E1")

UserForm1.ListBox1.AddItem x.Value

Next

UserForm1.Show

End Sub

8.然后單擊 運行 在 工具 菜單上,秦效、 " PopulateListWithHorizontalRange , 和 宏 雏蛮。

在單元格 A 1: E 5 Sheet, 將值添加到 ListBox 1 一次循環(huán)宏過程。

A 1: E 5 單元?注意?ListBox 1?與不定 Sheet 1 上阱州。

如何從 ListBox 控件綁定到多列的數(shù)據(jù)返回多個值

您可以格式 ListBox 控件以顯示多個列的數(shù)據(jù)挑秉。 這意味著 ListBox 控件, 每個列表行上顯示多個項目苔货。 要多值列表, 中選定項收益請按照下列步驟操作:

1.啟動 Excel, 并打開新空白工作簿犀概。

2.Sheet 由該單元格中鍵入以下數(shù)據(jù):

A 1: 年B 1: 區(qū)域C1: 銷售

A 2: 1996B: 北美C2: 140

3: 1996B 3: 南非C 3: 210

A 4: 1997B4: 北美C 4: 190

A5: 1997B 5: 南非C 5: 195

3.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 立哑。

4.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 。

5.將 Label 控件添加到 UserForm姻灶。

6.將 ListBox 控件添加到 UserForm铛绰。

7.右擊 ListBox , 然后單擊 屬性 。

8.鍵入或選擇值产喉, 都表示為下列屬性對 ListBox 控件與下表中列出:

Property Value

----------------------------

BoundColumn 1

ColumnCount 3

ColumnHeads True

RowSource Sheet1!A2:A5

9.雙擊 ListBox 控件以顯示代碼窗口對 ListBox 控件至耻。

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.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 。

當您單擊 ListBox 控件, 中一個條目標簽將更改為顯示該條目中所有三個項目镊叁。

如何從綁定到工作表 ListBox 控件中刪除所有項目

要從 ListBox 控件綁定到工作表, 刪除所有項目清除尘颓, 是存儲在 RowSource 屬性值。 要從 ListBox 控件綁定到工作表, 刪除項目請按照下列步驟:

1.啟動 Excel, 并打開新空白工作簿晦譬。

2.在單元格 A 1: A 5 Sheet, 鍵入了您要用于填充 ListBox 控件值疤苹。

3.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 。

4.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 敛腌。

5.將 ListBox 控件添加到 UserForm卧土。

6.用鼠標右鍵單擊 ListBox 控件, 然后單擊 屬性 。

7.在 RowSource 屬性, 鍵入 Sheet 1 A 1: A 5 像樊!

8.將 CommandButton 控件添加到 UserForm尤莺。

9.雙擊以顯示代碼窗口為 CommandButton 控件 CommandButton 控件。

10.在代碼窗口, 為 CommandButton 1 Click 事件鍵入下列代碼:

Private Sub CommandButton1_Click()

ListBox1.RowSource = ""

End Sub

11.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 生棍。

ListBox 控件颤霎, 添加到 UserForm 具有值, 您輸入 Sheet 填充涂滴。

12.單擊 CommandButton 1 友酱。

從 ListBox 1 中刪除所有項目。

如何從不綁定到工作表 ListBox 控件中刪除所有項目

沒有沒有單個 VBA 命令如果沒有綁定到工作表列表柔纵, 從 ListBox 控件刪除所有項目缔杉。 要從 ListBox 控件從 VisualBasic 數(shù)組, 填充刪除所有項目請按照下列步驟:

1.啟動 Excel, 并打開新空白工作簿。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 搁料。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 或详。

4.將 ListBox 控件添加到 UserForm。

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.將 CommandButton 控件添加到 UserForm霸琴。

8.雙擊以顯示代碼窗口為 CommandButton 控件 CommandButton 控件。

9.在代碼窗口, 為 CommandButton 1 Click 事件鍵入下列代碼:

Private Sub CommandButton1_Click()

For i = 1 To ListBox1.ListCount

ListBox1.RemoveItem 0

Next I

End Sub

10.然后單擊 運行 在 工具 菜單上,拣宏、 " PopulateListBox , 和 宏 沈贝。

ListBox 控件填充, 并再出現(xiàn) UserForm。

11.單擊 CommandButton 1 勋乾。

從 ListBox 1 中刪除所有項目宋下。


6嗡善、ComboBox 控件

您可以使用 ComboBox 控件作為在下拉列表框中, 或組合框其中您可選擇列表中值或鍵入新值。 Style 屬性決定如果 ComboBox 控件作為下拉列表框或組合框学歧。

注意?前述對?ListBox?控件中所有示例也能應(yīng)用到?ComboBox?控件, 除例如獲取多選擇 ListBox 控件中選定項 " 如何 "罩引。

如何向列表添加新項目如果 ComboBox 控件未綁定到工作表

鍵入值是未在列表中 ComboBox 控件, 時可能要向列表添加新值。 要添加新值枝笨, 如果 ComboBox 控件未綁定到工作表, ComboBox 控件中鍵入請按照下列步驟操作:

1.啟動 Excel, 并打開新空白工作簿袁铐。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 横浑。

4.將 ComboBox 控件添加到 UserForm剔桨。

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 Sub

7.將 CommandButton 控件添加到 UserForm徙融。

8.雙擊以顯示代碼窗口為 CommandButton 控件 CommandButton 控件洒缀。

9.在代碼窗口, 為 CommandButton 1 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 Sub

10.然后單擊 運行 在 工具 菜單上,、 " PopulateListBox , 和 宏 欺冀。

填充 組合框 控件, 并再出現(xiàn) UserForm树绩。

11.ComboBox 控件, 中鍵入 Mangoes (或任何值尚未是列表中)。

12.單擊 CommandButton 1 隐轩。

現(xiàn)在您鍵入新值將在列表末尾饺饭。

如何向列表添加新項目如果 ComboBox 控件綁定到工作表

當用戶鍵入值是未在列表中 ComboBox 控件, 可能需要新值添加到列表。 要添加該列表, ComboBox 控件中鍵入新值請按照下列步驟操作:

1.啟動 Excel, 并打開新空白工作簿职车。

2.單元格 A 1: A 5 Sheet, 中鍵入值與要用于填充 組合框 控件瘫俊。

3.選擇單元格 A 1: A 5 Sheet 1 上。

4.插入 菜單上指向 名稱 , 然后單擊 定義 提鸟。

在 工作簿中名稱 框中, 鍵入 ListRange , 然后單擊 確定 军援。 這創(chuàng)建 ListRange 定義名稱。 使用定義名稱 ListRange 將 ComboBox 控件的 RowSource 屬性綁定到工作表称勋。

5.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 。

6.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 涯竟。

7.將 ComboBox 控件添加到 UserForm赡鲜。

8.對于 ComboBox 1 , 屬性 中鍵入 與 RowSource 屬性 ListRange Sheet 1 !

9.將 CommandButton 控件添加到 UserForm。

10.雙擊以顯示代碼窗口為 CommandButton 控件 CommandButton 控件庐船。

11.在代碼窗口, 為 CommandButton 1 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 If

End Sub

12.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 银酬。

UserForm 出現(xiàn)在 Sheet 1。

13.ComboBox 控件, 中鍵入值尚未列表中筐钟。

14.單擊 CommandButton 1 揩瞪。

ComboBox 控件中鍵入新項目添加到列表, 并范圍擴展到包括單元 A1:A6, ComboBox 控件綁定到列表篓冲。

當出現(xiàn) UserForm 如何顯示 ComboBox 控件列表

有時, 可能非常有用以 UserForm 首次出現(xiàn)時顯示 ComboBox 控件的列表李破。 以下示例使用是 UserForm Activate 事件宠哄。 要顯示的 ComboBox 控件, 列表請按照下列步驟操作:

1.啟動 Excel, 并打開新空白工作簿。

2.單元格 A 1: A 5 Sheet, 中鍵入值與要用于填充 組合框 控件嗤攻。

3.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 毛嫉。

4.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 。

5.將 ComboBox 控件添加到 UserForm妇菱。

6.對于 ComboBox 1 , 屬性 中鍵入 Sheet 1 與 RowSource 屬性 A 1: A 5 承粤!

7.雙擊以顯示代碼窗口對于 UserForm UserForm 。

8.在代碼窗口, 為 CommandButtonClick 事件鍵入下列代碼:

Private Sub UserForm_Activate()

ComboBox1.DropDown

End Sub

9.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 闯团。

UserForm, Sheet 1 上出現(xiàn)辛臊, 您可看到該列表對于 ComboBox 1 。

當其他 ComboBox 控件中進行選擇如何顯示一個 ComboBox 控件列表

要, ComboBox 控件中進行選擇時自動顯示一個 ComboBox 控件的列表請按照下列步驟操作:

1.啟動 Excel, 并打開新空白工作簿房交。

2.在單元格 A 1: A 10 Sheet, 輸入值與要用于填充 組合框 控件彻舰。

3.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 。

4.在 插入 菜單上, 單擊 模塊 涌萤。

5.在代碼窗口為模塊, 鍵入如下代碼:

Sub DropDown_ComboBox()

UserForm1.ComboBox2.DropDown

End Sub

6.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 淹遵。

7.將 ComboBox 控件添加到 UserForm。

8.對于 ComboBox 1 , 屬性 中鍵入 Sheet 1 與 RowSource 屬性 A 1: A 5 负溪!

9.雙擊要打開代碼窗口對 ComboBox 控件 ComboBox 控件透揣。

10.在代碼窗口對 ComboBox 控件, 為 ComboBox Click 事件鍵入下列代碼:

Private Sub ComboBox1_Click()

Application.OnTime Now, "DropDown_ComboBox"

End Sub

11.添加到 UserForm 二 ComboBox 控件。

12.對于 ComboBox2 , 屬性 中鍵入 Sheet 1 與 RowSource 屬性 A6:A10 川抡!

13.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 辐真。

對于 ComboBox2 列表單擊, ComboBox 1 列表中的項目時將自動出現(xiàn)。


7崖堤、框架控件

使用 Frame 控件來分組 UserForm 中邏輯相關(guān)項侍咱。 框架 控件經(jīng)常用于分組 OptionButton 控件。

如何循環(huán) Frame 控件上的所有控件

要使用 EachàNext For 循環(huán)來訪問 框架 控件, 中所有控件請按照下列步驟:

1.啟動 Excel, 并打開新空白工作簿密幔。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 楔脯。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 。

4.將 Frame 控件添加到 UserForm胯甩。

5.OptionButton 控件添加到 Frame 控件昧廷。

重復(fù)此步驟向 Frame 控件中添加兩個詳細 OptionButton 控件。

6.雙擊要打開代碼窗口對 Frame 控件 Frame 控件偎箫。

7.在代碼窗口, 為 框架 Click 事件鍵入下列代碼:

Private Sub Frame1_Click()

Dim Ctrl As Control

For Each Ctrl In Frame1.Controls

Ctrl.Enabled = Not Ctrl.Enabled

Next

End Sub

8.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 木柬。

9.在 UserForm, 單擊 Frame 控件。

首次您單擊 框架 控件, Frame 控件中所有控件是不可用淹办。 如果再次, 單擊 Frame 控件控件可再次眉枕。


8、OptionButton 控件

可使用 OptionButton 控件組進行一個選擇的選項組中。 使用以下技術(shù)到組 OptionButton 控件之一:

?框架?控件

?GroupName?屬性

注意?On?值速挑,?是?值, 和?True?值表明已選中一個?OptionButton?谤牡。?Off?值、?無?值, 和?False?值表明未選中?OptionButton?攻擊梗摇。

如何確定當 OptionButton 控件位于 Frame 控件被選中 OptionButton 控件

通過使用 Frame 控件, OptionButtons 控件分組時您可以確定通過循環(huán) Frame 控件中所有控件并檢查 Value 屬性的每個控件是選定 OptionButton 控件拓哟。 要確定所選, OptionButton 控件請按照下列步驟:

1.啟動 Excel, 并打開新空白工作簿。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 伶授。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 断序。

4.將 Frame 控件添加到 UserForm。

5.OptionButton 控件添加到 Frame 控件糜烹。

重復(fù)此步驟向 Frame 控件中添加兩個詳細 OptionButton 控件违诗。

6.添加一個 CommandButton 控件 UserForm 之外 Frame 控件上。

7.雙擊以顯示代碼窗口對于 UserForm CommandButton 控件疮蹦。

8.在代碼窗口, 為 CommandButton 1 Click 事件鍵入下列代碼:

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.UserForm , 中一個 OptionButton 控件, 依次 CommandButton 1 。

將出現(xiàn)一個消息框包含當前選定 OptionButton 控件的題注愕乎。

如何確定所選 OptionButton 控件

對以下示例目的是為了確定 Group1 中選定 OptionButton 控件阵苇。 若要創(chuàng)建具有兩個 OptionButton 控件組, UserForm 請按照下列步驟:

1.啟動 Excel, 并打開新空白工作簿。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 感论。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 绅项。

4.將 Frame 控件添加到 UserForm。

5.Frame 控件中添加一個 OptionButton 控件比肄。

重復(fù)此步驟向 Frame 控件中添加兩個詳細 OptionButton 控件快耿。

6.對于每個 OptionButton 控件, 在 GroupName 屬性鍵入 Group1 。

7.重復(fù)步驟 4 和 5 以創(chuàng)建包含三個 OptionButton 控件二 Frame 控件芳绩。

8.對于每個 OptionButton 控件在第二個 框架 控件, 在 GroupName 屬性鍵入 Group2 掀亥。

9.添加一個 CommandButton 控件 UserForm 之外 Frame 控件上。

10.雙擊以顯示代碼窗口對于 UserForm CommandButton 控件妥色。

11.在代碼窗口, 為 CommandButton 1 Click 事件鍵入下列代碼:

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 Sub

12.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 搪花。

13.UserForm, 中 Group1, 中一個 OptionButton 控件依次 CommandButton 1 。

將出現(xiàn)一個消息框包含 OptionButton 控件當前選定的標題嘹害。


9鳍侣、CheckBox 控件

您可以使用 CheckBox 控制來指示真或假值。 帶有復(fù)選標記中出現(xiàn) CheckBox 控件指示值為 True 吼拥。 與沒有復(fù)選標記出現(xiàn) CheckBox 表示值為 False 。 如果 TripleState 屬性的值為 True , CheckBox 控件還可以 Null 值线衫。 可用似乎具有 Null 值 CheckBox 控件凿可。

注意?On?值,?是?值, 和?True?值表明,?CheckBox?控件被選定枯跑。?Off?值惨驶、?無?值, 和?False?值表明?CheckBox?控件已清除。

如何檢查 CheckBox 控件的值

要使用 Value 屬性以返回當前值的 CheckBox 控件, 請按照下列步驟:

1.啟動 Excel, 并打開新空白工作簿敛助。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 粗卜。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 。

4.將 CheckBox 控件添加到 UserForm纳击。

5.在屬性列表對于 CheckBox 1 , 選擇 True 與 TripleState 屬性续扔。

6.雙擊 CheckBox 控件以顯示代碼窗口為 CheckBox 控件。

7.在代碼窗口, 為 CheckBox 1 Change 事件鍵入下列代碼:

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 Sub

8.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 焕数。

當您單擊 CheckBox 控件, 標題的 CheckBox 控件更改以反映當前值纱昧。


10、切換按鈕控件

切換按鈕 控件具有相同外觀作為一個 CommandButton 控件在您單擊它堡赔。 當單擊 切換按鈕 控件, 它似乎按或推识脆。 當未選中按鈕 Value 屬性的 切換按鈕 控件是 True 選擇按鈕時, False 善已。 如果 TripleState 屬性的值為 True , ToggleButton 控件還可以 Null 值灼捂。 可用似乎具有 Null 值 切換按鈕 控件。

注意?On?值换团,?是?值, 和?True?值表明選定?ToggleButton?控件悉稠。?Off?值、?無?值, 和?False?值表明未選中?ToggleButton?控件啥寇。

如何獲取 ToggleButton 控件的值

要獲取值 ToggleButton 控件, 請按照下列步驟操作:

1.啟動 Excel, 并打開新空白工作簿偎球。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 辑甜。

4.添加 UserForm 上一個 切換按鈕 控件衰絮。

5.將 Label 控件添加到 UserForm。

6.雙擊要打開代碼窗口為 ToggleButton 控件 切換按鈕 控件磷醋。

7.在代碼窗口, 為 ToggleButton1Click 事件鍵入下列代碼:

Private Sub ToggleButton1_Click()

If ToggleButton1.Value = True Then

' Set UserForm background to Red.

Me.BackColor = RGB(255, 0, 0)

Else

' Set UserForm background to Blue.

Me.BackColor = RGB(0, 0, 255)

End If

End Sub

8.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 猫牡。

當您單擊 切換按鈕 控件, 的 UserForm 更改背景色。

如何創(chuàng)建互斥 ToggleButton 控件組

本示例將變量使用 MouseUp 事件并調(diào)用 ExclusiveToggleButtons 過程邓线。 ExclusiveToggleButtons 過程決定 ToggleButton 控件淌友, 選中, 然后取消其他。 若要創(chuàng)建互斥 ToggleButton 控件組, 請按照下列步驟:

1.啟動 Excel, 并打開新空白工作簿骇陈。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 震庭。

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 Sub

5.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 你雌。

6.將 Frame 控件添加到 UserForm器联。

7.Frame 控件中添加一個 切換按鈕 控件二汛。

重復(fù)此步驟向 Frame 控件中添加兩個詳細 切換按鈕 控件。

8.雙擊以顯示代碼窗口對于 UserForm Frame 控件拨拓。

9.在代碼窗口為模塊, 為 ToggleButton 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 Sub

10.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 肴颊。

單擊 切換按鈕 控件, 時取消以前選定 切換按鈕 控件。


11渣磷、TabStrip 控件

使用 TabStrip 控件來查看不同組的一組控件的信息婿着。

如何通過編程控制 TabStrip 控件

若要更改 BackColor 屬性的 圖像 控件根據(jù)所選, 選項卡請按照下列步驟:

1.啟動 Excel, 并打開新空白工作簿。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 醋界。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 竟宋。

4.添加到 UserForm TabStrip 控件。

5.添加 圖像 控件包含對數(shù)的 TabStrip 控件, 但沒有涉及標簽物独,袜硫。

6.在屬性窗格用于 Image1、 類型和 H000000FF & BackColor 屬性中挡篓。

7.雙擊要打開代碼窗口對 TabStrip 控件 TabStrip 控件婉陷。

8.在代碼窗口, 為 TabStrip1 Change 事件鍵入下列代碼:

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(255, 0, 0)

Case 1

' If Tab2 is selected, change the color of Image control to Green.

Image1.BackColor = RGB(0, 255, 0)

End Select

End Sub

9.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 。

根據(jù)是活動 TabStrip 控件中頁上 圖像 控件修訂的顏色官研。

有關(guān) TabStrip 控件, 請單擊下列文章編號以查看 Microsoft 知識庫中相應(yīng):


12秽澳、multiPage 控件

使用 MultiPage 控件來處理大量可被分為幾類排序信息。 MultiPage 控件由組成一個或多個 Page 對象戏羽, 每個包含不同組的控件担神。 以編程方式通過設(shè)置 MultiPage 控件的 Value 屬性設(shè)置活動頁。

如何控制 MultiPage 控件編程

要添加 MultiPage 控件并控制它通過使用宏, 請按照下列步驟操作:

1.啟動 Excel, 并打開新空白工作簿始花。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 妄讯。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 。

4.添加到 UserForm MultiPage 控件酷宵。

5.將 Label 控件添加到 Page 1 多頁 控件上亥贸。

6.將 TextBox 控件添加到 Page 1 多頁 控件上。

7.MultiPage 控件, 上單擊, Page 2 浇垦, 然后重復(fù)步驟 5 和 6 以添加一個 Label 控件和 TextBox 控件炕置。

8.雙擊要打開代碼窗口對 MultiPage 控件 MultiPage 控件。

9.在代碼窗口, 為 MultiPage1 Change 事件鍵入下列代碼:

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

10.在代碼窗口, 為 UserForm Initialize 事件鍵入下列代碼:

Private Sub UserForm_Initialize()

' Force Page1 to be active when UserForm is displayed.

MultiPage1.Value = 0

Label1.Caption = ""

End Sub

11.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 男韧。

Page 1, 上 TextBox 控件中鍵入 Test 朴摊。 當單擊 Page 2 選項卡、 TextBox 2 被清除, 和標題為 Label 2 變?yōu)轫棧?在 Page 1 上 TextBox 所做 (" Test ") (" Test ")


如何通過使用 MultiPage 控件創(chuàng)建一個向?qū)Ы缑?/p>

將任務(wù)需要幾個增量步驟, 向?qū)Ы缑婵赡軙浅S行А?您可使用 MultiPage 控件以創(chuàng)建一個向?qū)Ы缑娲媸褂枚嘤脩舸绑w此虑。 本示例操作具有三頁 MultiPage 控件甚纲。 附加到對 UserForm Initialize 事件過程禁用 Page 2 和 Page3, 并強制 Page 1 的 多頁 控件可活動。

注意?您通過使用?Pages?集合, 索引?MultiPage?控件的頁面時集合中第一頁是零頁朦前。 此過程還設(shè)置標題的?CommandButton?控件并禁用?< 備份?按鈕贩疙。

注意的功能是分配給 CommandButton 1 控件的 Click 事件過程 " 后退 " 按鈕 < 是分配給 CommandButton 2 是 Click 事件過程控制功能的下一步 > 按鈕讹弯。 若要通過使用?MultiPage?控件, 創(chuàng)建一個向?qū)Ы缑嬲埌凑障铝胁襟E:

1.啟動 Excel, 并打開新空白工作簿。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 这溅。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 。

4.添加到 UserForm MultiPage 控件棒仍。

5.右鍵單擊, " Page 1 選項卡悲靴, 然后單擊要添加到 多頁 控件 Page3 新頁 。

6.添加一個 CommandButton 控件不位于 多頁 控件上 UserForm 上莫其。

重復(fù)此步驟可添加一個 UserForm 上二 CommandButton 控件癞尚。

7.雙擊以打開代碼窗口對于 UserForm UserForm 。

8.在代碼窗口, 為 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 = "

CommandButton1.Enabled = False

CommandButton2.Caption = "Next>"

End Sub

' Procedure for the "

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

9.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 乱陡。

當您單擊下一步 > 激活 Page 2 后退 " 按鈕可, 和 < 當您單擊 Next > 第二次, Page3 激活并題注為 CommandButton 2 更改為 " 完成 "浇揩。


13、ScrollBar 控件

當您需要更改由另一控件, 如 Label 控件顯示值可以使用 ScrollBar 控件憨颠。

如何更改 Label 控件是基于值 ScrollBar 控件

若要 Label 控件的 Caption 屬性更改到當前設(shè)置的 Value 屬性的 ScrollBar 控件, 請按照下列步驟:

1.啟動 Excel, 并打開新空白工作簿胳徽。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 爽彤。

4.添加到 UserForm ScrollBar 控件养盗。

5.將 Label 控件添加到 UserForm。

6.雙擊要打開代碼窗口對 ScrollBar 控件 ScrollBar 控件适篙。

7.在代碼窗口, 為 ScrollBar 1 Change 事件鍵入下列代碼:

Private Sub ScrollBar1_Change()

Label1.Caption = ScrollBar1.Value

End Sub

8.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 往核。

當您通過使用 ScrollBar 控件, 滾動 Label 1 更新與對 ScrollBar 控件當前值。


14嚷节、數(shù)值調(diào)節(jié)鈕控件

到遞增或遞減其他控件, 如 Label 控件的值經(jīng)常使用 數(shù)值調(diào)節(jié)鈕 控件, 像 ScrollBar 控件,聂儒。 SmallChange 屬性決定多少值的 數(shù)值調(diào)節(jié)鈕 控件單擊它時更改。

如何添加 SpinButton 控件硫痰, 增加或減少存儲在 TextBox 控件中日期

要添加 SpinButton 控件衩婚, 增加或減少日期存儲在 TextBox 控件, 請按照下列步驟操作:

1.啟動 Excel, 并打開新空白工作簿。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 碍论。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 谅猾。

4.將 數(shù)值調(diào)節(jié)鈕 控件添加到 UserForm。

5.將 TextBox 控件添加到 UserForm鳍悠。

6.雙擊要打開代碼窗口為 SpinButton 控件 SpinButton 控件税娜。

7.在代碼窗口, 為 SpinButton 1 SpinUp 事件鍵入下列代碼:

Private Sub SpinButton1_SpinUp()

TextBox1.Text = DateValue(TextBox1.Text) + 1

End Sub

8.在代碼窗口, 為 SpinButton 1 SpinDown 事件鍵入下列代碼:

Private Sub SpinButton1_SpinDown()

TextBox1.Text = DateValue(TextBox1.Text) - 1

End Sub

9.在代碼窗口, 為 UserForm Initialize 事件鍵入下列代碼:

Private Sub UserForm_Initialize()

TextBox1.Text = Date

End Sub

10.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 。

出現(xiàn) UserForm 時, TextBox 中顯示當前日期藏研。 單擊 數(shù)值調(diào)節(jié)鈕 控件, 時增加或減少日期為由一天敬矩。

在本示例, 如果更改是 SpinButton 1 , SmallChange 屬性, 不影響天數(shù)當您單擊 SpinButton 1 被通過更改 TextBox 中項蠢挡。 過程弧岳, 附加到 SpinUp 事件和 SpinDown 事件是 SpinButton 1 天數(shù)僅由決定凳忙。


15、RefEdit 控件?

imitates 引用框 Excel 中內(nèi)置行為禽炬。 Value 屬性可用于獲取當前單元格地址存儲在 RefEdit 控件涧卵。

您選擇通過使用 RefEdit 控件如何填充的單元格區(qū)域基于區(qū)域

要使用 RefEdit 控件來填充單元格, 請按照下列步驟:

1.啟動 Excel, 并打開新空白工作簿。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 腹尖。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 柳恐。

4.添加到 UserForm RefEdit 控件。

5.將 CommandButton 控件添加到 UserForm热幔。

6.雙擊要打開代碼窗口為 CommandButton 控件 CommandButton 控件乐设。

7.在代碼窗口, 為 CommandButton 1 Click 事件鍵入下列代碼:

Private Sub CommandButton1_Click()

Dim MyRange As String

MyRange = RefEdit1.Value

Range(MyRange).Value = "test"

Unload Me

End Sub

8.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 。

UserFormappears绎巨。

9.單擊按鈕 RefEdit 控件中近尚。

注意 UserForm 折疊。

10.選定的單元格 A 1: A 5, 如區(qū)域场勤, 然后單擊按鈕以展開 UserForm RefEdit 控件中戈锻。

11.單擊 CommandButton 1 。

UserForm 關(guān)閉并且却嗡, 所選單元格現(xiàn)在包含單詞 " 測試 "舶沛。


16、圖像控件

圖像 控件的目的是為了 UserForm 上顯示圖片窗价。 要將圖片分配給 圖像 控件在運行時, 使用 LoadPicture 函數(shù)如庭。

如何加載圖像控件中圖片

若要插入 圖像 控件提示您要選擇圖片來單擊 圖像 控件, 時加載請按照下列步驟:

1.啟動 Excel, 并打開新空白工作簿。

2.在 工具 菜單, 指向 宏 , 然后單擊 VisualBasic 編輯器 撼港。

3.在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 坪它。

4.添加 UserForm 上 圖像 控件。

5.雙擊要打開代碼窗口為 圖像 控件 圖像 控件帝牡。

6.在代碼窗口, 為 Image1 Click 事件鍵入下列代碼:

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.在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 往毡。

UserForm 出現(xiàn)。

8.單擊 圖像 控件靶溜。

當您單擊 圖像 控件, 出現(xiàn) 圖像選擇要打開 對話框开瞭, 然后您可選擇位圖文件插入控件。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末罩息,一起剝皮案震驚了整個濱河市嗤详,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瓷炮,老刑警劉巖葱色,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異娘香,居然都是意外死亡苍狰,警方通過查閱死者的電腦和手機办龄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淋昭,“玉大人俐填,你說我怎么就攤上這事∠炫#” “怎么了玷禽?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長呀打。 經(jīng)常有香客問我,道長糯笙,這世上最難降的妖魔是什么贬丛? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮给涕,結(jié)果婚禮上豺憔,老公的妹妹穿的比我還像新娘。我一直安慰自己够庙,他們只是感情好恭应,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著耘眨,像睡著了一般昼榛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上剔难,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天胆屿,我揣著相機與錄音,去河邊找鬼偶宫。 笑死非迹,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的纯趋。 我是一名探鬼主播憎兽,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吵冒!你這毒婦竟也來了纯命?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤桦锄,失蹤者是張志新(化名)和其女友劉穎扎附,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體结耀,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡留夜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年匙铡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碍粥。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡鳖眼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嚼摩,到底是詐尸還是另有隱情钦讳,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布枕面,位于F島的核電站愿卒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏潮秘。R本人自食惡果不足惜琼开,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望枕荞。 院中可真熱鬧柜候,春花似錦、人聲如沸躏精。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽矗烛。三九已至辅柴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間高诺,已是汗流浹背碌识。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留虱而,地道東北人筏餐。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像牡拇,于是被迫代替她去往敵國和親魁瞪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1惠呼、窗體 1导俘、常用屬性 (1)Name屬性:用來獲取或設(shè)置窗體的名稱,在應(yīng)用程序中可通過Name屬性來引用窗體剔蹋。 ...
    Moment__格調(diào)閱讀 4,548評論 0 11
  • 1.1 VBA是什么 直到90年代早期,使應(yīng)用程序自動化還是充滿挑戰(zhàn)性的領(lǐng)域.對每個需要自動化的應(yīng)用程序,人們不得...
    浮浮塵塵閱讀 21,747評論 6 49
  • Windows 常用消息大全 表A-1 Windows消息分布 消息范圍說 明 0 ~ WM_USER – 1系統(tǒng)...
    北風知我意閱讀 2,049評論 0 0
  • 本篇將講到如何在EXCEL中使用不同的控件晴叨。 控件是控件工具箱提供的一系列對象睹欲,擁有自己的名稱缎罢,具有“屬性”、“方...
    ShineBABY閱讀 10,842評論 2 2
  • 肖敏其實是個很善變的人 自己用得好的app洛口,只要看到不好的評論就會把app給卸掉 自己其實蠻喜歡的一個作者,因為同...
    一棵芥菜閱讀 141評論 0 0