當前位置:首頁 > 科技 > 正文

【引用】[VBA] vba控件常規使用

【引用】[VBA] vba控件常規使用

2011-03-02 16:10:44|分類: |标簽: |字号

本文引用自Petery

UserForm 基礎

如何顯示 UserForm

以下是用于顯示 UserForm 編程語法是:
UserFormName .Show
要顯示名為 UserForm1, UserForm 使用以下代碼:
UserForm1.Show
不顯示它實際上還能加載 UserForm 裝入内存。 複雜 UserForm 可能需要幾秒鐘以顯示。 因為預先您能加載到内存, UserForm 可決定何時導緻此開銷。 要加載到内存 UserForm1 不顯示它, 使用以下代碼:
Load UserForm1
若要顯示 UserForm, 必須使用以前已顯示 顯示 方法。

如何以暫時隐藏 UserForm

如果要暫時隐藏 UserForm, 使用 隐藏 方法。 可能想要隐藏 UserForm 如果應用程序涉及用戶窗體之間移動。 要隐藏 UserForm, 使用以下代碼:
UserForm1.Hide

如何從内存删除 UserForm

要從内存, 删除 UserForm 使用 Unload 語句。 要卸載, 名為 UserForm1, UserForm 使用以下代碼:
Unload UserForm1
如果您卸載 UserForm, 是與 UserForm 或者, 是與 UserForm 上控件的事件過程中 (例如, 您單擊 CommandButton 控件), 您可以使用 " 我 " 關鍵字代替的 UserForm 名稱。 将關鍵字用于卸載 UserForm, " Me " 使用以下代碼:
Unload Me

如何使用 UserForm 事件

支持許多預定義事件, 可以附加到 VBA 過程。 在事件發生時, 該附加到事件過程運行。 單個操作由用戶執行可初始化多事件。 之間最經常對 UserForm 使用事件是 Initialize 事件、 Click 事件, 和 Terminate 事件。

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

如何捕獲 UserForm 事件

要捕獲 UserForm 事件, 請按照下列步驟操作:
1. Excel 中創建新工作簿。
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 事件。 調整 UserForm Click 事件。 因為您創建 Resize 事件, 過程單擊 UserForm 後收到兩個消息框。 因為 Click 事件代碼更改寬度屬性和 Height 屬性是 UserForm Resize 事件發生兩次。

關閉 UserForm 初始化 QueryClose 事件。 QueryClose 事件顯示消息框包含标題為 Initialize 事件, 您賦予 UserForm 代碼中。 可以使用時要執行特定的操作集如果用戶關閉 UserForm QueryClose 事件。

然後生成一個消息框, 指出标題為 UserForm 是 UserForm1 Terminate 事件。 從内存中删除 UserForm 并返回到其原始狀态标題為 UserForm 後 Terminate 事件發生。

如何防止 UserForm 關閉通過關閉按鈕

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

QueryClose 事件 UserForm 是從内存中卸載之前發生。 使用 QueryClose 事件 CloseMode CloseMode 參數來确定如何 UserForm 關閉。 vbFormControlMenu 值為 CloseMode CloseMode 參數表示時, 單擊 關閉 按鈕。要保持活動, UserForm 将 Cancel 取消 對 QueryClose 事件參數為 True 。 要使用 QueryClose 事件來防止 UserForm 關閉通過 關閉 按鈕, 請按照下列步驟:
1. Excel 中創建新工作簿。
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. 在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 。
當您單擊 關閉 按鈕 UserForm 未關閉。 您必須單擊 CommandButton 控件關閉 UserForm。



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

如何使用設計模式來編輯控件

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

當您處在設計模式 注意 控件不響應與事件。 當您運行一個對話框, 顯示方式, 用戶看到它, 程序處于運行模式。 當 UserForm 是從内存中卸載将不會保留更改, 對運行模式中控件的屬性。

注意 控件請回複到事件在運行模式。

如何引用 UserForm 上控件

如何您引用控件編程取決 VisualBasic 模塊表運行代碼的類型。 如果代碼從常規模塊, 運行以下語法是:
UserFormName.Controlname.Property =
例如, 如果要設置名為 TextBox , 名為到值是 Bob , UserForm1 UserForm 上 TextBox 控件的 Text 屬性使用以下代碼:
UserForm1.TextBox1.Text = "Bob"
如果代碼是通過事件的控件或者通過 UserForm, 啟動過程中是您不需要引用名為 UserForm。 而, 使用以下代碼:
TextBox1.Text = "Bob"
當向對象, 附加代碼代碼附加到之一為對象事件。 衆多, 本文示例中, 将代碼附加到 Click 事件是 CommandButton 對象。

标簽控件

标簽 控件主要用于描述 UserForm 上其他控件。 運行 UserForm 時 Label 控件不能編輯由用戶。 使用 Caption 屬性到設置或返回一個 Label 控件中文本。 用于格式化 Label 控件其他常用屬性包括 字體 屬性和 ForeColor 屬性。

如何使用 WITH 語句設置 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 "。

TextBox 控件

TextBox 控件經常用于收集來自用戶輸入。 Text 屬性包含項, TextBox 控件中進行。

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

如果您設置 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 關閉。

CommandButton 控件

您可以使用 CommandButton 控制來啟動 VBA 過程。 VBA 過程通常附加到 CommandButton 控件的 Click 事件。 要使用 CommandButton 控件 Click 事件發生, 時, 運行過程請按照步驟:
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 控件的背景顔色更改每次您單擊它。

ListBox 控件

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

如何從 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. 在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 。
當單擊列表, 中的項目與當前選定項目将出現一個消息框。

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

确定多選擇 ListBox 控件, 中所選項目必須循環列表, 中所有項目并再查詢 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 在消息框中, 出現所有選定項後自動關閉。

如何使用 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 控件數組中有值

下例顯示您如何填充以數組 ListBox 控件。 數組中每次為 ListBox 控件項必須分配值。 通常, 此過程要求您使用循環結構, 如 ForàNext 循環。 要填充以數組, 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 過程建立簡單數組, 并數組中通過使用 AddItem 方法添加到 ListBox 控件項目。 然後, UserForm 出現。

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

如果将 ListBox 控件的 RowSource 屬性到水平區域的單元格, ListBox 控件中第一個值隻會出現。

要通過使用 AddItem 方法, ListBox 控件從水平區域的單元格填充請按照下列步驟操作:
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 一次循環宏過程。

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

如何從 ListBox 控件綁定到多列的數據返回多個值

您可以格式 ListBox 控件以顯示多個列的數據。 這意味着 ListBox 控件, 每個列表行上顯示多個項目。 要多值列表, 中選定項收益請按照下列步驟操作:
1. 啟動 Excel, 并打開新空白工作簿。
2. Sheet 由該單元格中鍵入以下數據:

A 1: 年 B 1: 區域 C1: 銷售
A 2: 1996 B: 北美 C2: 140
3: 1996 B 3: 南非 C 3: 210
A 4: 1997 B4: 北美 C 4: 190
A5: 1997 B 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 數組, 填充删除所有項目請按照下列步驟:
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 控件填充, 并再出現 UserForm。
11. 單擊 CommandButton 1 。
從 ListBox 1 中删除所有項目。

ComboBox 控件

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

注意 前述對 ListBox 控件中所有示例也能應用到 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 , 和 宏 。

填充 組合框 控件, 并再出現 UserForm。
11. ComboBox 控件, 中鍵入 Mangoes (或任何值尚未是列表中)。
12. 單擊 CommandButton 1 。
現在您鍵入新值将在列表末尾。

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

當用戶鍵入值是未在列表中 ComboBox 控件, 可能需要新值添加到列表。 要添加該列表, ComboBox 控件中鍵入新值請按照下列步驟操作:
1. 啟動 Excel, 并打開新空白工作簿。
2. 單元格 A 1: A 5 Sheet, 中鍵入值與要用于填充 組合框 控件。
3. 選擇單元格 A 1: A 5 Sheet 1 上。
4. 插入 菜單上指向 名稱 , 然後單擊 定義 。

在 工作簿中名稱 框中, 鍵入 ListRange , 然後單擊 确定 。 這創建 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 出現在 Sheet 1。
13. ComboBox 控件, 中鍵入值尚未列表中。
14. 單擊 CommandButton 1 。
ComboBox 控件中鍵入新項目添加到列表, 并範圍擴展到包括單元 A1:A6, ComboBox 控件綁定到列表。

當出現 UserForm 如何顯示 ComboBox 控件列表

有時, 可能非常有用以 UserForm 首次出現時顯示 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 上出現, 您可看到該列表對于 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 列表中的項目時将自動出現。

框架控件

使用 Frame 控件來分組 UserForm 中邏輯相關項。 框架 控件經常用于分組 OptionButton 控件。

如何循環 Frame 控件上的所有控件

要使用 EachàNext For 循環來訪問 框架 控件, 中所有控件請按照下列步驟:
1. 啟動 Excel, 并打開新空白工作簿。
2. 在 工具 菜單, 指向 宏 , 然後單擊 VisualBasic 編輯器 。
3. 在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 。
4. 将 Frame 控件添加到 UserForm。
5. OptionButton 控件添加到 Frame 控件。

重複此步驟向 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 控件控件可再次。

OptionButton 控件

可使用 OptionButton 控件組進行一個選擇的選項組中。 使用以下技術到組 OptionButton 控件之一:
框架 控件
GroupName 屬性
注意 On 值, 值, 和 True 值表明已選中一個 OptionButton Off 值、 值, 和 False 值表明未選中 OptionButton 攻擊。

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

通過使用 Frame 控件, OptionButtons 控件分組時您可以确定通過循環 Frame 控件中所有控件并檢查 Value 屬性的每個控件是選定 OptionButton 控件。 要确定所選, OptionButton 控件請按照下列步驟:
1. 啟動 Excel, 并打開新空白工作簿。
2. 在 工具 菜單, 指向 宏 , 然後單擊 VisualBasic 編輯器 。
3. 在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 。
4. 将 Frame 控件添加到 UserForm。
5. OptionButton 控件添加到 Frame 控件。

重複此步驟向 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 。
将出現一個消息框包含當前選定 OptionButton 控件的題注。

如何确定所選 OptionButton 控件

對以下示例目的是為了确定 Group1 中選定 OptionButton 控件。 若要創建具有兩個 OptionButton 控件組, UserForm 請按照下列步驟:
1. 啟動 Excel, 并打開新空白工作簿。
2. 在 工具 菜單, 指向 宏 , 然後單擊 VisualBasic 編輯器 。
3. 在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 。
4. 将 Frame 控件添加到 UserForm。
5. Frame 控件中添加一個 OptionButton 控件。

重複此步驟向 Frame 控件中添加兩個詳細 OptionButton 控件。
6. 對于每個 OptionButton 控件, 在 GroupName 屬性鍵入 Group1 。
7. 重複步驟 4 和 5 以創建包含三個 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 。
将出現一個消息框包含 OptionButton 控件當前選定的标題。

CheckBox 控件

您可以使用 CheckBox 控制來指示真或假值。 帶有複選标記中出現 CheckBox 控件指示值為 True 。 與沒有複選标記出現 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 控件更改以反映當前值。

切換按鈕控件

切換按鈕 控件具有相同外觀作為一個 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 更改背景色。

如何創建互斥 ToggleButton 控件組

本示例将變量使用 MouseUp 事件并調用 ExclusiveToggleButtons 過程。 ExclusiveToggleButtons 過程決定 ToggleButton 控件, 選中, 然後取消其他。 若要創建互斥 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 控件中添加一個 切換按鈕 控件。

重複此步驟向 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. 在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 。
單擊 切換按鈕 控件, 時取消以前選定 切換按鈕 控件。

TabStrip 控件

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

如何通過編程控制 TabStrip 控件

若要更改 BackColor 屬性的 圖像 控件根據所選, 選項卡請按照下列步驟:
1. 啟動 Excel, 并打開新空白工作簿。
2. 在 工具 菜單, 指向 宏 , 然後單擊 VisualBasic 編輯器 。
3. 在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 。
4. 添加到 UserForm TabStrip 控件。
5. 添加 圖像 控件包含對數的 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. 在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 。
根據是活動 TabStrip 控件中頁上 圖像 控件修訂的顔色。

有關 TabStrip 控件, 請單擊下列文章編号以查看 Microsoft 知識庫中相應:

multiPage 控件

使用 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 事件鍵入下列代碼:
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 變為項, 在 Page 1 上 TextBox 所做 (" Test ") (" Test ")

如何通過使用 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 事件鍵入下列代碼:
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 更改為 " 完成 "。

ScrollBar 控件

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

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

若要 Label 控件的 Caption 屬性更改到當前設置的 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 控件當前值。

數值調節鈕控件

到遞增或遞減其他控件, 如 Label 控件的值經常使用 數值調節鈕 控件, 像 ScrollBar 控件,。 SmallChange 屬性決定多少值的 數值調節鈕 控件單擊它時更改。

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

要添加 SpinButton 控件, 增加或減少日期存儲在 TextBox 控件, 請按照下列步驟操作:
1. 啟動 Excel, 并打開新空白工作簿。
2. 在 工具 菜單, 指向 宏 , 然後單擊 VisualBasic 編輯器 。
3. 在 插入 菜單上, 單擊要在工作簿中插入 UserForm UserForm 。
4. 将 數值調節鈕 控件添加到 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. 在 運行 菜單上, 單擊 運行子過程 / 用戶窗體 。
出現 UserForm 時, TextBox 中顯示當前日期。 單擊 數值調節鈕 控件, 時增加或減少日期為由一天。

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

RefEdit 控件 imitates 引用框 Excel 中内置行為。 Value 屬性可用于獲取當前單元格地址存儲在 RefEdit 控件。

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

要使用 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, 如區域, 然後單擊按鈕以展開 UserForm RefEdit 控件中。
11. 單擊 CommandButton 1 。
UserForm 關閉并且, 所選單元格現在包含單詞 " 測試 "。

圖像控件

圖像 控件的目的是為了 UserForm 上顯示圖片。 要将圖片分配給 圖像 控件在運行時, 使用 LoadPicture 函數。

如何加載圖像控件中圖片

若要插入 圖像 控件提示您要選擇圖片來單擊 圖像 控件, 時加載請按照下列步驟:
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 出現。
8. 單擊 圖像 控件。

當您單擊 圖像 控件, 出現 圖像選擇要打開 對話框, 然後您可選擇位圖文件插入控件。

你可能想看:

有話要說...

取消
掃碼支持 支付碼