Công cụ chuyển đổi tiền tệ trong Excel VBA
Dưới đây chúng ta sẽ xem xét một chương trình trong Excel VBA tạo Biểu mẫu người dùng có thể chuyển đổi bất kỳ số tiền nào từ một loại tiền tệ này sang một loại tiền tệ khác.
Userform mà chúng ta sẽ tạo ra như sau:
Để tạo Biểu mẫu người dùng này, hãy thực hiện các bước sau.
-
Mở Trình soạn thảo Visual Basic. Nếu Project Explorer không hiển thị, hãy bấm View, Project Explorer.
-
Nhấp vào Chèn, Biểu mẫu người dùng. Nếu Hộp công cụ không tự động xuất hiện, hãy bấm Xem, Hộp công cụ. Màn hình của bạn sẽ được thiết lập như bên dưới.
-
Thêm nhãn, hộp danh sách (đầu tiên ở bên trái, thứ hai ở bên phải), hộp văn bản (đầu tiên ở bên trái, thứ hai ở bên phải) và nút lệnh. Khi điều này đã được hoàn thành, kết quả sẽ phù hợp với hình ảnh của Biểu mẫu người dùng được hiển thị trước đó. Ví dụ: tạo điều khiển hộp danh sách bằng cách nhấp vào ListBox từ Hộp công cụ. Tiếp theo, bạn có thể kéo một hộp danh sách trên Biểu mẫu người dùng.
-
Bạn có thể thay đổi tên và chú thích của các điều khiển. Tên được sử dụng trong mã VBA Excel. Phụ đề là những thứ xuất hiện trên màn hình của bạn. Bạn nên thay đổi tên của các điều khiển, nhưng không cần thiết ở đây vì chúng ta chỉ có một số điều khiển trong ví dụ này. Để thay đổi chú thích của Biểu mẫu người dùng, nút lệnh và nhãn, hãy nhấp vào Chế độ xem, Cửa sổ thuộc tính và nhấp vào từng điều khiển.
-
Để hiển thị Biểu mẫu người dùng, hãy đặt một nút lệnh trên trang tính của bạn và thêm dòng mã sau:
Private Sub CommandButton1_Click() UserForm1.Show End Sub
Bây giờ chúng ta sẽ tạo Sub UserForm_Initialize. Khi bạn sử dụng phương thức Hiển thị cho Biểu mẫu người dùng, phụ này sẽ tự động được thực thi.
-
Mở Trình soạn thảo Visual Basic.
-
Trong Project Explorer, nhấp chuột phải vào UserForm1 và sau đó nhấp vào View Code.
-
Chọn Userform từ danh sách thả xuống bên trái. Chọn Khởi tạo từ danh sách thả xuống bên phải.
-
Thêm các dòng mã sau:
Private Sub UserForm_Initialize() With ListBox1 .AddItem "Euro" .AddItem "Us Dollar" .AddItem "British Pound" End With With ListBox2 .AddItem "Euro" .AddItem "Us Dollar" .AddItem "British Pound" End With ListBox1.ListIndex = 1 ListBox2.ListIndex = 0 TextBox1.Value = 1 TextBox2.Value = 0.722152 End Sub
Giải thích: đầu tiên, hai hộp danh sách được điền. Tiếp theo, đơn vị tiền tệ Đô la Mỹ được đặt làm mặc định trong hộp danh sách đầu tiên và đơn vị tiền tệ EURO được đặt làm mặc định trong hộp danh sách thứ hai. Cuối cùng, giá trị 1 được nhập vào hộp văn bản đầu tiên và giá trị 0,722152 được nhập vào hộp văn bản thứ hai.
Bây giờ chúng tôi đã tạo phần đầu tiên của Biểu mẫu người dùng. Mặc dù nó trông đã gọn gàng rồi, nhưng sẽ không có gì xảy ra khi chúng ta nhấp vào nút Go.
-
Trong Project Explorer, nhấp đúp vào UserForm1.
-
Nhấp đúp vào nút Go.
-
Thêm các dòng mã sau:
Private Sub CommandButton1_Click() Dim rates(0 To 2, 0 To 2) As Double, i As Integer, j As Integer rates(0, 0) = 1 rates(0, 1) = 1.38475 rates(0, 2) = 0.87452 rates(1, 0) = 0.722152 rates(1, 1) = 1 rates(1, 2) = 0.63161 rates(2, 0) = 1.143484 rates(2, 1) = 1.583255 rates(2, 2) = 1 For i = 0 To 2 For j = 0 To 2 If ListBox1.ListIndex = i And ListBox2.ListIndex = j Then TextBox2.Value = TextBox1.Value rates(i, j) Next j Next i End Sub
Giải thích: đầu tiên, chúng ta khai báo một mảng. Mảng có hai chiều.
Nó bao gồm 3 hàng và 3 cột. Tiếp theo, chúng ta khởi tạo từng phần tử của mảng. Ví dụ, tỷ giá (1,0) là tỷ giá tiền tệ từ Đô la Mỹ sang EURO. Tiếp theo, chúng ta bắt đầu một vòng lặp kép. Tùy thuộc vào đơn vị tiền tệ đã chọn trong các hộp danh sách, Excel VBA sẽ chuyển đổi số tiền đã nhập trong hộp văn bản đầu tiên và hiển thị kết quả trong hộp văn bản thứ hai.
Ví dụ: nếu i = 2 và j = 1 và chúng tôi nhập giá trị 2 vào hộp văn bản đầu tiên, Excel VBA đặt giá trị 2 tỷ lệ (2,1) = 2 * 1,583255 = 3,16651 trong hộp văn bản thứ hai.
-
Kiểm tra Userform.
Kết quả: