
- VBA 教程
- VBA - 首頁
- VBA - 概述
- VBA - Excel 宏
- VBA - Excel 術語
- VBA - 宏註釋
- VBA - 訊息框
- VBA - 輸入框
- VBA - 變數
- VBA - 常量
- VBA - 運算子
- VBA - 決策
- VBA - 迴圈
- VBA - 字串
- VBA - 日期和時間
- VBA - 陣列
- VBA - 函式
- VBA - 子過程
- VBA - 事件
- VBA - 錯誤處理
- VBA - Excel 物件
- VBA - 文字檔案
- VBA - 圖表程式設計
- VBA - 使用者窗體
- VBA 有用資源
- VBA - 快速指南
- VBA - 有用資源
- VBA - 討論
VBA - 使用者窗體
使用者窗體是一個自定義構建的對話方塊,它使使用者資料輸入更易於控制,並且更易於使用者使用。 在本章中,您將學習設計一個簡單的窗體並將資料新增到 Excel 中。
步驟 1 - 透過按 Alt+F11 導航到 VBA 視窗,然後導航到“插入”選單並選擇“使用者窗體”。 選擇後,使用者窗體將顯示如下面的螢幕截圖所示。

步驟 2 - 使用給定的控制元件設計窗體。

步驟 3 - 新增每個控制元件後,必須為控制元件命名。 標題對應於窗體上顯示的內容,名稱對應於在為該元素編寫 VBA 程式碼時將出現的邏輯名稱。

步驟 4 - 以下是每個新增控制元件的名稱。
控制元件 | 邏輯名稱 | 標題 |
---|---|---|
窗體 | frmempform | 員工資訊 |
員工 ID 標籤框 | empid | 員工 ID |
名字標籤框 | firstname | 名字 |
姓氏標籤框 | lastname | 姓氏 |
出生日期標籤框 | dob | 出生日期 |
郵箱標籤框 | mailid | 郵箱 |
護照持有者標籤框 | Passportholder | 護照持有者 |
員工 ID 文字框 | txtempid | 不適用 |
名字文字框 | txtfirstname | 不適用 |
姓氏文字框 | txtlastname | 不適用 |
郵箱文字框 | txtemailid | 不適用 |
日期組合框 | cmbdate | 不適用 |
月份組合框 | cmbmonth | 不適用 |
年份組合框 | cmbyear | 不適用 |
是單選按鈕 | radioyes | 是 |
否單選按鈕 | radiono | 否 |
提交按鈕 | btnsubmit | 提交 |
取消按鈕 | btncancel | 取消 |
步驟 5 - 透過右鍵單擊窗體並選擇“檢視程式碼”來新增窗體載入事件的程式碼。

步驟 6 - 從物件下拉列表中選擇“使用者窗體”,然後選擇“初始化”方法,如下面的螢幕截圖所示。

步驟 7 - 載入窗體後,請確保文字框已清除,下拉框已填充,並且單選按鈕已重置。
Private Sub UserForm_Initialize() 'Empty Emp ID Text box and Set the Cursor txtempid.Value = "" txtempid.SetFocus 'Empty all other text box fields txtfirstname.Value = "" txtlastname.Value = "" txtemailid.Value = "" 'Clear All Date of Birth Related Fields cmbdate.Clear cmbmonth.Clear cmbyear.Clear 'Fill Date Drop Down box - Takes 1 to 31 With cmbdate .AddItem "1" .AddItem "2" .AddItem "3" .AddItem "4" .AddItem "5" .AddItem "6" .AddItem "7" .AddItem "8" .AddItem "9" .AddItem "10" .AddItem "11" .AddItem "12" .AddItem "13" .AddItem "14" .AddItem "15" .AddItem "16" .AddItem "17" .AddItem "18" .AddItem "19" .AddItem "20" .AddItem "21" .AddItem "22" .AddItem "23" .AddItem "24" .AddItem "25" .AddItem "26" .AddItem "27" .AddItem "28" .AddItem "29" .AddItem "30" .AddItem "31" End With 'Fill Month Drop Down box - Takes Jan to Dec With cmbmonth .AddItem "JAN" .AddItem "FEB" .AddItem "MAR" .AddItem "APR" .AddItem "MAY" .AddItem "JUN" .AddItem "JUL" .AddItem "AUG" .AddItem "SEP" .AddItem "OCT" .AddItem "NOV" .AddItem "DEC" End With 'Fill Year Drop Down box - Takes 1980 to 2014 With cmbyear .AddItem "1980" .AddItem "1981" .AddItem "1982" .AddItem "1983" .AddItem "1984" .AddItem "1985" .AddItem "1986" .AddItem "1987" .AddItem "1988" .AddItem "1989" .AddItem "1990" .AddItem "1991" .AddItem "1992" .AddItem "1993" .AddItem "1994" .AddItem "1995" .AddItem "1996" .AddItem "1997" .AddItem "1998" .AddItem "1999" .AddItem "2000" .AddItem "2001" .AddItem "2002" .AddItem "2003" .AddItem "2004" .AddItem "2005" .AddItem "2006" .AddItem "2007" .AddItem "2008" .AddItem "2009" .AddItem "2010" .AddItem "2011" .AddItem "2012" .AddItem "2013" .AddItem "2014" End With 'Reset Radio Button. Set it to False when form loads. radioyes.Value = False radiono.Value = False End Sub
步驟 8 - 現在,將程式碼新增到“提交”按鈕。 單擊“提交”按鈕後,使用者應該能夠將值新增到工作表中。
Private Sub btnsubmit_Click() Dim emptyRow As Long 'Make Sheet1 active Sheet1.Activate 'Determine emptyRow emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1 'Transfer information Cells(emptyRow, 1).Value = txtempid.Value Cells(emptyRow, 2).Value = txtfirstname.Value Cells(emptyRow, 3).Value = txtlastname.Value Cells(emptyRow, 4).Value = cmbdate.Value & "/" & cmbmonth.Value & "/" & cmbyear.Value Cells(emptyRow, 5).Value = txtemailid.Value If radioyes.Value = True Then Cells(emptyRow, 6).Value = "Yes" Else Cells(emptyRow, 6).Value = "No" End If End Sub
步驟 9 - 新增一種方法,當用戶單擊“取消”按鈕時關閉窗體。
Private Sub btncancel_Click() Unload Me End Sub
步驟 10 - 透過單擊“執行”按鈕執行窗體。 將值輸入窗體,然後單擊“提交”按鈕。 值將自動流入工作表,如下面的螢幕截圖所示。

廣告