Trong VBA có nhiều cách khác nhau để lấy các giá trị ô. Trong bài viết này chúng ta sẽ cùng tìm hiểu cách lấy giá trị bên trong một ô bằng cách viết code với Range hoặc Cells. Đây là một trong những cú pháp cơ bản và đơn giản nhất mà tất cả chúng ta nên biết cách sử dụng.
Cú pháp hàm CELLS vô cùng đơn giản, chỉ yêu cầu tọa độ chỉ số Hàng và chỉ số Cột, để xác định vị trí của ô
Cells([RowIndex], [ColumnIndex])
Cú pháp hàm RANGE cũng đơn giản không kém.
RANGE(“cell position”).VALUE
Với cell position là vị trí ô hoặc phạm vi ô.
Để biết thêm các hàm và phương thức VBA hữu ích khác, hãy tham khảo các khóa học lập trình VBA trong Excel của Gitiho để tự động hóa thao tác và nghiệp vụ trên Excel, tiết kiệm hàng giờ mệt mỏi vì làm báo cáo, quản lý dữ liệu nhé:
Để hiểu thêm về các sử dụng hàm CELLS và RANGE lấy giá trị ô trong VBA Excel, hãy quan sát các ví dụ bên dưới
Giả sử chúng ta có ô B2 với nội dung ô là “TEST”. Để lấy được giá trị ô này và xuất nó trong một hộp thông báo, hãy làm theo các bước dưới đây:
Bước 1: Chèn một module mới bên trong Visual Basic Editor (VBE). Bấm vào tab Insert > chọn Module.
Bước 2: Viết sub procedure của VBA Lấy giá trị ô. Với code như sau:
Sub VBA_GetCellValue1()
End Sub
Bước 3: Bây giờ trực tiếp sử dụng các hộp thông báo (hàm MsgBox) với hàm CELLS sử dụng toạn độ của ô B2 như đoạn code bên dưới
MsgBox Cells (2, 2) End Sub
Bước 4: Chạy mã bằng cách nhấn F5 hoặc Nút Play bên dưới thanh menu. Chúng ta sẽ thấy thông báo lấy giá trị từ ô B2 như hình dưới đây.
Bây giờ, chúng ta hãy xem thêm một đoạn mã lấy giá trị ô đơn giản khác. Chúng tôi sẽ sử dụng cùng một ô B2 như được sử dụng trong ví dụ-1. Nhưng, trong ví dụ này, chúng ta sẽ di chuyển con trỏ đến ô cần chứa giá trị. Hãy làm theo các bước dưới đây:
Bước 1: Một lần nữa, hãy mở một mô-đun mới và viết sub procedure cho VBA lấy giá trị ô như đoạn code sau
Sub VBA_GetCellValue2 ()
End Sub
Bước 2: Bây giờ sử dụng hàm Range và Select để di chuyển con trỏ.
Sub VBA_GetCellValue2()
Range("B2").Select
End Sub
Bước 3: Bây giờ di chuyển con trỏ ra khỏi ô B2 và sau đó chạy mã, chúng ta sẽ thấy con trỏ bây giờ được di chuyển trở lại ô B2.
Bước 4: Như vậy chúng ta đã biết cách chọn một ô theo giá trị. Có một cách khác để thực hiện thao tác này. Chúng ta sẽ sử dụng hàm CELLS và đặt cùng tọa độ như được sử dụng trong ví dụ 1. Các bước thực hiện tương tự như cách chúng ta sử dụng hàm CELLS.
Sub VBA_GetCellValue2()
Cells(2, 2).Select
End Sub
Trong ví dụ này, chúng ta sẽ thấy cách lấy giá trị ô trong hộp thông báo bằng một phương thức khác. Hãy thử các thao tác bên dưới.
Bước 1: Hãy mở Module và viết sub procedure sau:
Sub VBA_GetCellValue3()
End Sub
Bước 2: Sau đó xác định một biến là chuối bằng cách sử dụng DIM
Sub VBA_GetCellValue3()
Dim Value As String
End Sub
Bước 3: Sử dụng biến VALUE đã xác định, chọn giá trị từ ô phạm vi B2.
Sub VBA_GetCellValue3()
Dim Value As String
Value = Range("B2").Value
End Sub
Bước 4: Sử dụng hộp thông báo để xem giá trị được lưu trong ô B2.
Sub VBA_GetCellValue3()
Dim Value As String
Value = Range("B2").Value
MsgBox Value
End Sub
Bước 5: Khi chúng ta Chạy mã bằng cách nhấn F5 hoặc Nút Play bên dưới thanh menu, chúng ta sẽ nhận được hộp thông báo có giá trị là TEST nằm ở ô B2.
Bước 6: Code tương tự, có thể được sử dụng nếu chúng ta chọn kiểu dữ liệu là VARIANT thay vì STRING. VARIANT trong VBA cho phép cả số và văn bản.
Sub VBA_GetCellValue3()
Dim Value As Variant
Value = Range("B2").Value
MsgBox Value
End Sub
Có một cách khác để sử dụng các hàm lấy giá trị ô trong VBA, đó là chuyển giá trị ô từ ô này sang ô khác. Với các bước đơn giản như sau:
Bước 1: Mở một module mới và chọn phạm vi ô dể tạo lệnh. Giả sử chúng ta muốn sử dụng cùng một phạm vi ô B2 trong các ví dụ trên.
Sub VBA_GetCellValue4()
Range("B2").Value
End Sub
Bước 2: Bây giờ chọn ô mà chúng ta muốn đặt giá trị. Ví dụ như A1
Sub VBA_GetCellValue4()
Range("B2").Value = Range("A1").Value
End Sub
Bước 3: Chạy mã để xem kết quả. Giá trị từ ô B2 sẽ được chuyển sang ô A1.
Lấy giá trị ô trong VBA là thao tác cơ bản, giúp bạn có thể dễ dàng lấy giá trị ô từ mọi nơi. Ghi nhớ các hàm này, bạn sẽ dễ dàng sao chép hoặc di chuyển giá trị ô hoặc con trỏ đến bất kỳ nơi nào bạn muốn.
Những điều cần ghi nhớ
Hy vọng hướng dẫn này đã giúp bạn hiểu cách lấy giá trị ô với VBA trong Excel. Bên cạnh đó, đừng quên tham gia Gitiho ngay hôm nay nhé, chúng tôi còn nhiều mẹo và thủ thuật tin học văn phòng thú vị khác chờ bạn khám phá.
Nếu công việc của bạn liên quan nhiều đến quản lý, phân tích dữ liệu và làm báo cáo trên bảng tính thì giỏi Excel thôi chưa đủ. Nếu biết thêm về VBA sẽ giúp bạn tiết kiệm tối đa thời gian làm việc nhờ làm báo cáo tự động, phân tích và xử lý số liệu chính xác tuyệt đối, đặc biệt công cần lọ mọ sửa thủ công,…
Tất tần tật những kiến thức từ cơ bản đến nâng cao về cách sử dụng VBA trong Excel sẽ được đề cập trong khóa học VBAG01: Tuyệt đỉnh VBA - Tự động hóa Excel với lập trình VBA tại Gitiho
Hãy nhấn vào Học thử hoặc Đăng ký ngay!