1. Trang chủ
  2. » Công Nghệ Thông Tin

Userform (form người dùng) trong VBA excel

9 1,8K 19

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 464,18 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

USERFORM FORM NGƯỜI DÙNG TRONG VBA EXCEL Bài viết hướng dẫn bạn làm thế nào để tạo ra một UserForm trong VBA Excel.. Thêm các điều khiển được liệt kê trong bảng dưới đây như hình ảnh t

Trang 1

USERFORM (FORM NGƯỜI DÙNG) TRONG VBA

EXCEL

Bài viết hướng dẫn bạn làm thế nào để tạo ra một UserForm trong VBA

Excel UserForm là form để tương tác với user

File bài tập đính kèm (Bạn tải về cùng nhé)!

Bài viết hướng dẫn bạn làm thế nào để tạo ra một UserForm trong VBA Excel UserForm là form để tương tác với user, chúng ta sẽ ví dụ một form như sau:

Trang 2

Thêm các điều khiển (ActiveX Controls):

Để thêm các điều khiển lên Userform, ta làm như sau:

1 Mở Visual Basic Editor Nếu Project Explorer không hiển thị thì click View, Project Explorer

2 Click Insert, Userform Nếu Toolbox không tự động xuất hiện, bấm vào View, Toolbox Màn hình của bạn sẽ được hiển thị như sau:

3 Thêm các điều khiển được liệt kê trong bảng dưới đây như hình ảnh trên UserForm thể hiện trước đó Ví dụ, tạo ra một text box bằng cách click vào TextBox từ hộp công cụ Tiếp theo kéo text box lên UserForm

4 Thay đổi tên (name) và chú thích (captions) của các điều khiển theo bảng dưới đây Tên sẽ được sử dụng trong code của Excel VBA Chú thích sẽ xuất hiện trên màn hình của bạn để mô tả thông tin Ta nên thay đổi tên của điều khiển để viết code dễ dàng

Trang 3

hơn để đọc Để thay đổi tên (Name) và chú thích (Caption) của các điều khiển, bấm View, Properties Window và click vào từng điều khiển

Userform DinnerPlannerUserForm Dinner Planner

Option Button CarOptionButton1 Yes

Spin Button MoneySpinButton

Trang 4

Control Name Caption

7 Labels No need to change Name:, Phone Number:, etc

Lưu ý: Một combo box là một danh sách thả xuống (drop-down list) để người dùng

có thể chọn một mục trong danh sách đó

Hiển thị Userform

Đặt một command button trên worksheet và paste vào đoạn code sau:

Private Sub CommandButton1_Click()

DinnerPlannerUserForm.Show

End Sub

Bây giờ chúng ta sẽ tạo ra các giá trị khởi tạo với Sub UserForm_Initialize Khi bạn

sử dụng Show cho UserForm, sub này sẽ được tự động thực thi

1 Mở Visual Basic Editor

2 Trên Project Explorer, click phải chuột vào DinnerPlannerUserForm và click View Code

3 Chọn Userform từ danh sách thả xuống bên trái, chọn Initialize danh sách bên phải

4 Thêm đoạn code bên dưới:

Trang 5

Private Sub UserForm_Initialize()

'Empty NameTextBox

NameTextBox.Value = ""

'Empty PhoneTextBox

PhoneTextBox.Value = ""

'Empty CityListBox

CityListBox.Clear

'Fill CityListBox

With CityListBox

.AddItem "San Francisco" AddItem "Oakland"

.AddItem "Richmond"

End With

'Empty DinnerComboBox

DinnerComboBox.Clear

'Fill DinnerComboBox

With DinnerComboBox

.AddItem "Italian"

.AddItem "Chinese"

.AddItem "Frites and Meat" End With

'Uncheck DataCheckBoxes DateCheckBox1.Value = False DateCheckBox2.Value = False DateCheckBox3.Value = False

Trang 6

'Set no car as default

CarOptionButton2.Value = True

'Empty MoneyTextBox

MoneyTextBox.Value = ""

'Set Focus on NameTextBox

NameTextBox.SetFocus

End Sub

Chú ý: Các đoạn text sau dâu ‘ (nháy đơn) là các lời chú thích, nó sẽ không được

thực thi khi chạy code

Gán Macros

Chúng ta đã tạo ra được phần đầu của UserForm Mặc dù trông có vẻ giống một giao diện tương tác với người dùng, nhưng không có gì xảy ra khi chúng ta bấm vào các nút lệnh trên UserForm

1 Mở Visual Basic Editor

2 Trên Project Explorer, nháy đôi vào DinnerPlannerUserForm

3 Nháy đôi vào nút Money spin

4 Thêm đoạn code sau:

Private Sub MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

End Sub

Giải thích: Dòng code này update giá trị của text box khi người dùng sử dụng nút

spin

Trang 7

5 Nháy đôi vào nút OK

6 Thêm đoạn code sau:

Private Sub OKButton_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 = NameTextBox.Value

Cells(emptyRow, 2).Value = PhoneTextBox.Value

Cells(emptyRow, 3).Value = CityListBox.Value

Cells(emptyRow, 4).Value = DinnerComboBox.Value

If DateCheckBox1.Value = True Then Cells(emptyRow, 5).Value = DateCheckBox1.Caption

If DateCheckBox2.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox2.Caption

If DateCheckBox3.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox3.Caption

If CarOptionButton1.Value = True Then

Cells(emptyRow, 6).Value = "Yes"

Else

Cells(emptyRow, 6).Value = "No"

End If

Trang 8

Cells(emptyRow, 7).Value = MoneyTextBox.Value

End Sub

Giải thích: Đầu tiên, chúng ta kích hoạt Sheet1 Tiếp theo, chúng ta xác định

emptyRow Biến emptyRow là dòng trống đầu tiên và mỗi lần tăng thêm 1 dòng Cuối cùng, chúng ta chuyển các thông tin từ các điều khiển trên UserForm để các cột cụ thể của dòng emptyRow

7 Nháy đôi vào nút Clear

8 Thêm đọa code sau:

Private Sub ClearButton_Click()

Call UserForm_Initialize

End Sub

Giải thích: dòng mã này gọi UserForm_Initialize Sub khi bạn nhấn vào nút Clear

9 Nháy đôi vào nút Cancel

10 Thêm đọa code sau:

Private Sub CancelButton_Click()

Unload Me

End Sub

Giải thích: dòng mã này đóng UserForm khi bạn bấm vào nút Cancel

Kiểm tra Userform

Thoát Visual Basic Editor, nhập thông tin hiển thị dưới đây vào dòng 1 và kiểm tra UserForm

Kết quả:

Ngày đăng: 27/08/2015, 00:10

w