Cách tạo tham chiếu Vùng, ô trong VBA

Cách tốt nhất để tham chiếu tới một vùng trong Excel VBA là gì? Câu trả lời là phụ thuộc vào mục tiêu của người dùng. Có nhiều cách khác nhau để tham chiếu tới một vùng trong VBA. Khi sử dụng chức năng Record Macro thì khi chọn bất kỳ vùng nào đều để lại câu lệnh

‘vùng được chọn’.Select

Tuy nhiên khi làm việc trực tiếp trên VBA chúng ta không cần thiết phải lựa chọn vùng đó (.Select) rồi mới làm việc với nó, mà có thể làm việc trực tiếp được.

Trong bài viết này chúng ta sẽ tìm hiểu các cách thức tạo tham chiếu đến vùng, ô trong Excel thường gặp:

Tham chiếu tới 1 ô

Cách thứ 1: Sử dụng tham chiếu cụ thể tới 1 cell

Tên Sheet.Cells(số hàng, số cột).thuộc tính cụ thể

Ví dụ: Sheet1.Cells(1, 1).value = 123

Câu lệnh được hiểu là: Giá trị của ô có vị trí tại cột 1, hàng 1 trong Sheet1 (ô A1 trong Sheet1) có giá trị là 123

Cách thứ 2: Sử dụng tham chiếu bằng tên của ô đặt trong dấu ngoặc vuông

[Vị trí ô]

Ví dụ: [A1] = 123

Câu lệnh được hiểu là: giá trị của ô có vị trí A1 có giá trị bằng 123

So sánh 2 cách:

Cách 2 sử dụng nhanh hơn với những vị trí đã được xác định cụ thể và ít thay đổi. Tuy nhiên nếu vị trí đó có thể thay đổi tùy điều kiện thì lại không sử dụng được.

Cách 1 tuy phức tạp hơn, khó nhớ hơn nhưng lại giúp chúng ta có thể sử dụng trong trường hợp vị trí có thể thay đổi theo điều kiện hàng, cột.

Ví dụ: Gán nội dung ở vị trí cột B, tương ứng với dòng cuối cùng có chứa dữ liệu trong cột A giá trị là 123

Sub Test()
Dim lr as long

lr=range(“A” & rows.count).end(xlup).row

Cells(lr, 2).value=123

End Sub

Như vậy ở đây ta không thể biết chắc vị trí có dòng cuối có chứa dữ liệu ở cột A là dòng nào, nên có thể sử dụng biến lr (LastRow) để tìm dòng cuối ở cột A, sau đó đưa biến đó vào câu lệnh Cells cho cột B (cột thứ 2)

Tham chiếu tới 1 vùng

Tham chiếu tới 1 vùng thường sử dụng cách thức sau:

‘Tên sheet’.Range(“Vùng tham chiếu”)

Ví dụ về tham chiếu tới vùng cô định:

  • Sheet1.Range(“A1”) là tham chiếu tới vùng A1 (chỉ có 1 ô) => khi đó nội dung này giống như tham chiếu trực tiếp tới ô đó
  • Sheet1.Rasnge(“A3:B10”) là tham chiếu tới vùng từ A3 đến B10

Ví dụ về tham chiếu tới vùng không cố định:

Sub Test()

Dim lr as long

lr=range(“A” & rows.count).end(xlup).row

Range(“B2:B” & lr).value=123.value=123

End Sub

ở đây vùng “B2:B” & lr là vùng từ ở cột B, từ dòng thứ 2 tới dòng cuối cùng có chứa dữ liệu ở cột A

Như vậy chúng ta đã nắm được cách tham chiếu thường dùng trong VBA rồi, đón xem các bài học tiếp theo trong blog.hocexcel.online bạn nhé.

Chúc các bạn học tốt cùng Học Excel Online!