Hướng dẫn này sẽ dạy bạn cách tương tác với Giá trị ô bằng VBA.
Đặt giá trị ô
Để đặt Giá trị ô, hãy sử dụng thuộc tính Giá trị của đối tượng Phạm vi hoặc Ô.
Range.Value & Cells.Value
Có hai cách để tham chiếu (các) ô trong VBA:
- Đối tượng phạm vi - Phạm vi (“A2”). Giá trị
- Đối tượng ô - Ô (2,1). Giá trị
Đối tượng Phạm vi cho phép bạn tham chiếu một ô bằng ký hiệu "A1" tiêu chuẩn.
Điều này sẽ đặt giá trị của phạm vi A2 = 1:
1 | Phạm vi ("A2"). Giá trị = 1 |
Đối tượng Cells cho phép bạn tham chiếu đến một ô theo số hàng và số cột của nó.
Điều này sẽ đặt giá trị của dải ô A2 = 1:
1 | Ô (2,1) .Value = 1 |
Lưu ý rằng bạn nhập số hàng trước:
1 | Ô (Row_num, Col_num) |
Đặt nhiều giá trị ô cùng một lúc
Thay vì tham chiếu đến một ô, bạn có thể tham chiếu một loạt các ô và thay đổi tất cả các giá trị của ô cùng một lúc:
1 | Phạm vi ("A2: A5"). Giá trị = 1 |
Đặt giá trị ô - Văn bản
Trong các ví dụ trên, chúng tôi đặt giá trị ô bằng một số (1). Thay vào đó, bạn có thể đặt giá trị ô bằng một chuỗi văn bản. Trong VBA, tất cả văn bản phải được bao quanh bởi dấu ngoặc kép:
1 | Phạm vi ("A2"). Giá trị = "Văn bản" |
Nếu bạn không bao quanh văn bản bằng các trích dẫn, VBA sẽ nghĩ rằng bạn đang tham chiếu đến một biến…
Đặt giá trị ô - Biến
Bạn cũng có thể đặt giá trị ô bằng một biến
1234 | Dim strText dưới dạng chuỗistrText = "Chuỗi văn bản"Phạm vi ("A2"). Giá trị = strText |
Nhận giá trị ô
Bạn có thể nhận các giá trị ô bằng cách sử dụng cùng một thuộc tính Giá trị mà chúng tôi đã sử dụng ở trên.
Nhận giá trị ActiveCell
Để nhận giá trị ActiveCell và hiển thị nó trong hộp thông báo:
1 | MsgBox ActiveCell.Value |
Gán giá trị ô cho biến
Để nhận một giá trị ô và gán nó cho một biến:
123 | Dim var as Variantvar = Range ("A1"). Giá trị |
Ở đây chúng tôi đã sử dụng một biến kiểu Variant. Các biến biến thể có thể chấp nhận bất kỳ loại giá trị nào. Thay vào đó, bạn có thể sử dụng kiểu biến Chuỗi:
123 | Dim var dưới dạng chuỗivar = Range ("A1"). Giá trị |
Một kiểu biến Chuỗi sẽ chấp nhận các giá trị số, nhưng nó sẽ lưu trữ các số dưới dạng văn bản.
Nếu bạn biết giá trị ô của mình sẽ là số, bạn có thể sử dụng kiểu Biến kép (Biến kép có thể lưu trữ giá trị thập phân):
123 | Dim var as Doublevar = Range ("A1"). Giá trị |
Tuy nhiên, nếu bạn cố gắng lưu trữ giá trị ô chứa văn bản trong một biến kép, bạn sẽ nhận được lỗi không khớp kiểu:
Các ví dụ về giá trị ô khác
Sao chép giá trị ô
Thật dễ dàng để đặt một giá trị ô bằng một giá trị ô khác (hoặc “Sao chép” một giá trị ô):
1 | Phạm vi ("A1"). Giá trị = Phạm vi ("B1"). Giá trị |
Bạn thậm chí có thể làm điều này với các phạm vi ô (các phạm vi phải có cùng kích thước):
1 | Phạm vi ("A1: A5"). Giá trị = Phạm vi ("B1: B5"). Giá trị |
So sánh giá trị ô
Bạn có thể so sánh các giá trị ô bằng cách sử dụng các toán tử so sánh tiêu chuẩn.
Kiểm tra xem các giá trị ô có bằng nhau không:
1 | MsgBox Range ("A1"). Value = Range ("B1"). Giá trị |
Sẽ trả về TRUE nếu các giá trị ô bằng nhau. Ngược lại FALSE.
Bạn cũng có thể tạo Câu lệnh If để so sánh các giá trị ô:
12345678910111213 | Nếu Phạm vi ("A1"). Giá trị> Phạm vi ("B1"). Giá trị ThìPhạm vi ("C1"). Giá trị = "Lớn hơn"Elseif Range ("A1"). Value = Range ("B1"). Giá trị Sau đóPhạm vi ("C1"). Giá trị = "Bằng"KhácPhạm vi ("C1"). Giá trị = "Nhỏ hơn"Kết thúc nếu |
Bạn có thể so sánh văn bản theo cùng một cách (Hãy nhớ rằng VBA có Phân biệt chữ hoa chữ thường)