Hàm VBA OFFSET | Cách sử dụng Thuộc tính bù đắp VBA trong Excel (Ví dụ)

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 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 có gì khác ngoài một ô hoặc phạm vi của ô. Vì OFFSET tham chiếu đến các ô, chúng ta cần sử dụng đối tượng RANGE trước và 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à A1 tức là Phạm vi (“A1”).

Các ví dụ

Bạn có thể tải Mẫu VBA OFFSET này tại đây - Mẫu VBA OFFSET

Ví dụ 1

Hãy xem xét dữ liệu dưới đây để làm 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 cách sử dụng đối tượng Phạm vi.

Mã:

 Sub Offset_Example1 () Dải ("A1"). Offset (End Sub 

Bây giờ tôi muốn chọn ô A6 tức là tôi muốn làm 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ờ 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 hết 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 () Dải ("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ù trừ 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ừ ô hoạt động 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 đề cập đến “.Select”.
  • Nếu bạn muốn sao chép ô bằng OFFSET, bạn cần đề cập đến “.Copy”.

$config[zx-auto] not found$config[zx-overlay] not found