Hàm OFFSET trong Excel VBA
Hàm VBA Offset được sử dụng để di chuyển hoặc tham chiếu đến một tham chiếu bỏ qua một số hàng và cột cụ thể, các đối số cho hàm này trong VBA cũng giống như các đối số trong trang tính.
Ví dụ: giả sử bạn có một tập hợp dữ liệu như dưới đây.

Bây giờ từ ô A1, bạn muốn di chuyển xuống 4 ô và bạn muốn chọn ô thứ 5 đó , tức là ô A5.
Tương tự, nếu bạn muốn di chuyển xuống từ ô A1 2 hàng và đi 2 cột sang bên phải và chọn ô đó, tức là ô C2.
Trong những trường hợp này, hàm OFFSET rất hữu ích. Đặc biệt trong VBA Hàm OFFSET chỉ là một hiện tượng.
OFFSET được sử dụng với đối tượng phạm vi trong Excel VBA
Trong VBA, chúng ta không thể nhập trực tiếp từ OFFSET. Trước tiên, chúng ta cần sử dụng đối tượng VBA RANGE và từ đối tượng phạm vi đó, chúng ta có thể sử dụng thuộc tính OFFSET.
Trong excel, phạm vi không là gì ngoài một ô hoặc phạm vi của ô. Vì OFFSET tham chiếu đến các ô, trước tiên chúng ta cần sử dụng đối tượng RANGE, sau đó chúng ta có thể sử dụng phương thức OFFSET.
Cú pháp của OFFSET trong VBA Excel

- Chênh lệch Hàng: Số hàng bạn muốn bù trừ từ ô đã chọn. Ở đây ô được chọn là A1, tức là Phạm vi (“A1”).
- Chênh lệch Cột: Số cột bạn muốn bù trừ từ ô đã chọn. Ở đây ô được chọn là A, 1, tức là Phạm vi (“A1”).
Ví dụ
Ví dụ 1
Ví dụ, hãy xem xét dữ liệu dưới đây, ví dụ minh họa.

Bây giờ tôi muốn chọn ô A6 từ ô A1. Bắt đầu macro và ô tham chiếu bằng đối tượng Phạm vi.
Mã:
Sub Offset_Example1 () Range ("A1"). Offset (End Sub

Bây giờ tôi muốn chọn ô A6, tức là, tôi muốn giảm 5 ô. Vì vậy, hãy nhập 5 làm tham số cho Row Offset.
Mã:
Sub Offset_Example1 () Range ("A1"). Offset (5 End Sub

Vì tôi đang chọn trong cùng một cột, nên tôi bỏ đi phần cột. Đóng dấu ngoặc và đặt một dấu chấm (.) Và nhập phương thức “Chọn”.
Mã:
Sub Offset_Example1 () Range ("A1"). Offset (5). Chọn End Sub

Bây giờ hãy chạy mã này bằng phím F5 hoặc bạn có thể chạy thủ công để chọn ô A6 như hình dưới đây.

Đầu ra:

Ví dụ số 2
Bây giờ lấy cùng một dữ liệu nhưng ở đây sẽ xem cách sử dụng đối số bù cột. Bây giờ tôi muốn chọn ô C5.
Vì tôi muốn chọn ô C5 trước tiên, tôi muốn di chuyển xuống 4 ô và lấy 2 cột bên phải để đến ô C5. Đoạn mã dưới đây sẽ thực hiện công việc cho tôi.
Mã:
Sub Offset_Example2 () Range ("A1"). Offset (4, 2). Chọn End Sub

Tôi chạy mã này theo cách thủ công hoặc sử dụng phím F5. Sau đó, nó sẽ chọn ô C5, như được hiển thị trong ảnh chụp màn hình bên dưới.

Đầu ra:

Ví dụ # 3
Chúng ta đã thấy cách bù đắp các hàng và cột. Chúng ta cũng có thể chọn các ô trên từ các ô được chỉ định. Ví dụ, nếu bạn đang ở ô A10 và bạn muốn chọn ô A1, bạn chọn như thế nào?
Trong trường hợp di chuyển xuống ô, chúng ta có thể nhập một số dương, vì vậy ở đây trong trường hợp di chuyển lên, chúng ta cần nhập số âm.
Từ ô A9, chúng ta cần di chuyển lên 8 hàng, tức là -8.
Mã:
Sub Offset_Example1 () Range ("A9"). Offset (-8). Chọn End Sub

Nếu bạn chạy mã này bằng phím F5 hoặc bạn có thể chạy mã này theo cách thủ công sau đó, nó sẽ chọn ô A1 từ ô A9.

Đầu ra:

Ví dụ # 4
Giả sử bạn đang ở ô C8. Từ ô này, bạn muốn chọn ô A10.
Từ ô hiện hoạt, l, tức là ô C8, trước tiên chúng ta cần di chuyển xuống 2 hàng và di chuyển sang trái 2 cột để chọn ô A10.
Trong trường hợp di chuyển sang trái để chọn cột, chúng ta cần chỉ định số là số âm. Vì vậy, ở đây chúng ta cần quay lại -2 cột.
Mã:
Sub Offset_Example2 () Range ("C8"). Offset (2, -2). Chọn End Sub

Bây giờ chạy mã này bằng phím F5 hoặc chạy thủ công, nó sẽ chọn ô A10 như hình dưới đây:

Đầu ra:

Những điều cần ghi nhớ
- Trong trường hợp di chuyển lên trên các hàng, chúng ta cần chỉ định số trong phủ định.
- Trong trường hợp di chuyển sang trái để chọn cột, số phải là số âm.
- Ô A1 là hàng đầu tiên và cột đầu tiên.
- Active Cell có nghĩa là các ô hiện được chọn.
- Nếu bạn muốn chọn ô bằng OFFSET, bạn cần phải đề cập đến “.Select”.
- Nếu bạn muốn sao chép ô bằng OFFSET, bạn cần phải đề cập đến “.Copy.”