VBA TypeName

Bài viết này sẽ trình bày việc sử dụng Hàm TypeName VBA.

VBA Tên loại Hàm được sử dụng để xác định kiểu dữ liệu được lưu trữ trong một ô hoặc kiểu của một đối tượng đã chọn - ví dụ: trang tính, phạm vi hoặc ô hoặc điều khiển trên biểu mẫu.

Xác định loại dữ liệu trong một ô

Để xác định kiểu dữ liệu trong một ô, chúng ta có thể sử dụng hàm TypeName với Thuộc tính ô.

123 Sub TestCellDataType ()MsgBox "Loại dữ liệu trong" & Cells (3, 2) .Address & "is" & TypeName (Cells (3, 2) .Value)Kết thúc Sub

Nếu chúng tôi chạy mã này ở trên với trang tính bên dưới, hộp thông báo sẽ cho chúng tôi biết loại dữ liệu trong ô.

Xác định loại đối tượng đã chọn

Chúng ta cũng có thể sử dụng TypeName để xác định loại Đối tượng nào đã được chọn trong trang tính - Ví dụ như một Phạm vi hoặc một Biểu đồ.

123 Sub TestSelection ()MsgBox "Bạn đã chọn một" & TypeName (Lựa chọn)Kết thúc Sub

Hoặc, nếu chúng ta chọn một biểu đồ:

Chúng ta có thể đi sâu hơn nữa và chọn các đối tượng trong biểu đồ, và macro sẽ trả về những gì chúng ta đã chọn.

Tất cả điều này có thể hữu ích nhất trong việc xây dựng dự án VBA của chúng tôi để kiểm soát luồng mã hoặc ngăn lỗi xảy ra bằng cách thử nghiệm để đảm bảo chọn đúng loại đối tượng hoặc nhập đúng loại dữ liệu vào ô. .

Sử dụng TypeName trên các điều khiển biểu mẫu

VBA cho phép chúng tôi tạo các biểu mẫu tương tác mà người dùng có thể điền vào và trả lại dữ liệu cho mã được sử dụng theo nhiều cách khác nhau. Chúng ta có thể sử dụng toán tử TypeName để xác định loại điều khiển đang được sử dụng trên biểu mẫu.

Trong ví dụ dưới đây, tôi đã tạo một biểu mẫu người dùng với nhiều điều khiển trên đó - một vài Hộp văn bản, Hộp tổ hợp, 2 nút tùy chọn, 2 hộp kiểm và 3 nút lệnh.

Sử dụng mã bên dưới, tôi có thể xác định loại điều khiển nào trên biểu mẫu bằng cách lặp qua tất cả các điều khiển trên biểu mẫu. Tôi đã sử dụng chức năng TypeName để trả về một thông báo có loại điều khiển với Câu lệnh VBA IF để kiểm tra loại điều khiển nào được chọn.

123456 Sub WhatControlType ()Dim ctl As ObjectĐối với mỗi ctl Trong tôi.MsgBox "Điều khiển là một" & TypeName (ctl)Ctl tiếp theoKết thúc Sub

Loại mã này có thể rất hữu ích nếu chúng ta muốn bật hoặc tắt các điều khiển. Trong đoạn mã dưới đây, khi biểu mẫu được mở lần đầu tiên, các nút tùy chọn và hộp kiểm sẽ bị vô hiệu hóa.

123456789101112 Private Sub UserForm_Initialize ()Dim ctl As ObjectĐối với từng ctl Trong tôi.Nếu TypeName (ctl) = "CheckBox" Thìctl.Enabled = SaiElseIf TypeName (ctl) = "OptionButton" Sau đóctl.Enabled = SaiKhácctl.Enabled = ĐúngKết thúc nếuCtl tiếp theoKết thúc Sub

Để bật các nút tùy chọn và hộp kiểm, tôi đã viết thêm một số mã đằng sau nút Bật điều khiển.

12345678910 Sub riêng tư cmdEnable_Click ()Dim ctl As ObjectĐối với mỗi ctl Trong tôi.Nếu TypeName (ctl) = "CheckBox" Thìctl.Enabled = Không phải ctl.EnabledElseIf TypeName (ctl) = "OptionButton" Sau đóctl.Enabled = Không phải ctl.EnabledKết thúc nếuCtl tiếp theoKết thúc Sub

Chức năng trong mã này cũng có thể được tạo bằng cách sử dụng VBA TypeOf Operator.

Bạn sẽ giúp sự phát triển của trang web, chia sẻ trang web với bạn bè

wave wave wave wave wave