Mục lục:
Video: Hiểu thuộc tính offset của đối tượng Range trong lập trình VBA 2025
Mặc dù hiểu biết làm thế nào để tham khảo các đối tượng là quan trọng, bạn không thể làm bất kỳ chương trình Excel VBA hữu ích bằng cách chỉ đơn giản đề cập đến một đối tượng. Để hoàn thành bất cứ điều gì có ý nghĩa, bạn phải làm một trong hai điều sau:
-
Đọc hoặc sửa đổi thuộc tính của đối tượng.
-
Chỉ định một phương pháp của hành động sẽ được sử dụng với một đối tượng.
Với hàng ngàn tài sản và phương pháp sẵn có, bạn có thể dễ dàng bị choáng ngợp. Chỉ cần nhớ, bạn sẽ không bao giờ cần phải sử dụng hầu hết các thuộc tính và phương pháp có sẵn.
Đối tượng thuộc tính
Mỗi đối tượng đều có thuộc tính. Bạn có thể nghĩ thuộc tính như các thuộc tính mô tả đối tượng. Thuộc tính của một đối tượng xác định nó trông như thế nào, nó hoạt động như thế nào và thậm chí là nó có thể nhìn thấy hay không. Sử dụng VBA, bạn có thể làm hai việc với thuộc tính của đối tượng:
-
Kiểm tra thiết lập hiện tại cho một thuộc tính.
-
Thay đổi cài đặt thuộc tính.
Ví dụ, một đối tượng Range một ô có một thuộc tính được gọi là Value. Thuộc tính Giá trị lưu trữ giá trị chứa trong ô. Bạn có thể viết mã VBA để hiển thị thuộc tính Value, hoặc bạn có thể viết mã VBA để thiết lập thuộc tính Value cho một giá trị cụ thể. Cú pháp sau đây sử dụng hàm MsgBox được xây dựng trong VBA để đưa ra một hộp hiển thị giá trị trong ô A1 trên Sheet1 của bảng tính đang hoạt động:
Sub ShowValue () Nội dung = Bảng tính ("Sheet1"). Phạm vi ("A1"). Value MsgBox Contents End Sub
Nhân tiện, MsgBox là một chức năng rất hữu ích. Bạn có thể sử dụng nó để hiển thị kết quả trong khi Excel thực thi mã VBA của bạn.
Đoạn mã trong ví dụ trước hiển thị cài đặt hiện tại của thuộc tính Value của ô. Nếu bạn muốn thay đổi cài đặt cho thuộc tính đó thì sao? Cú pháp sau đây thay đổi giá trị trong ô A1 bằng cách thay đổi thuộc tính Value của ô:
Các bảng tính phụ ("Sheet1"). Phạm vi ("A1"). Giá trị = 994. 92 End Sub
Sau khi Excel thực hiện thủ tục này, ô A1 trên Sheet1 của bảng tính đang hoạt động chứa giá trị 994. 92. Nếu bảng tính hoạt động không có bảng có tên Sheet1 thì kết quả thực hiện macro đó là một thông báo lỗi. VBA chỉ làm theo hướng dẫn, và nó không thể làm việc với một tờ không tồn tại.
Mỗi đối tượng có một tập thuộc tính riêng, mặc dù một số thuộc tính phổ biến đối với nhiều đối tượng. Ví dụ, nhiều đối tượng (nhưng không phải tất cả) có thuộc tính Visible. Hầu hết các đối tượng cũng có một thuộc tính Tên.
Một số thuộc tính đối tượng là thuộc tính chỉ đọc, có nghĩa là mã của bạn có thể lấy giá trị thuộc tính, nhưng không thể thay đổi nó.
Một bộ sưu tập cũng là một đối tượng. Điều này có nghĩa là một bộ sưu tập cũng có tài sản. Ví dụ, bạn có thể xác định có bao nhiêu tập tin được mở bằng cách truy cập vào tài sản Count của bộ sưu tập Workbooks. Thủ tục VBA sau đây sẽ hiển thị một hộp thông điệp cho bạn biết có bao nhiêu tập tin được mở:
Sub CountBooks () MsgBox Workbooks. Count End Sub
Phương pháp đối tượng
Ngoài thuộc tính, đối tượng có phương pháp. Phương pháp là một hành động bạn thực hiện với một đối tượng. Một phương pháp có thể thay đổi thuộc tính của đối tượng hoặc làm cho đối tượng làm điều gì đó.
Ví dụ đơn giản này sử dụng phương thức ClearContents trên một đối tượng Range để xóa nội dung của 12 ô trên trang hoạt động:
Dãy Sub Rõ ràng () ("A1: A12"). ClearContents End Sub
Một số phương pháp lấy một hoặc nhiều đối số. Đối số là giá trị xác định thêm hành động để thực hiện. Bạn đặt các đối số cho một phương pháp sau khi phương pháp, cách nhau bằng dấu cách. Nhiều đối số được cách nhau bằng dấu phẩy.
Ví dụ sau kích hoạt Sheet1 (trong bảng tính đang hoạt động) và sau đó sao chép nội dung của ô A1 đến ô B1 bằng cách sử dụng phương pháp Sao chép đối tượng phạm vi. Trong ví dụ này, phương pháp Sao chép có một đối số, là dải đích cho hoạt động sao chép:
Sub CopyOne () Worksheets ("Sheet1"). Kích hoạt phạm vi ("A1"). Copy Range ("B1") End Sub
Lưu ý rằng tham chiếu bảng tính đã bị bỏ qua khi các đối tượng Range được tham chiếu. Điều này có thể được thực hiện an toàn vì một tuyên bố để kích hoạt Sheet1 đã được sử dụng. (sử dụng phương pháp Kích hoạt).
Một cách khác để xác định đối số cho một phương pháp là sử dụng tên chính thức của đối số và dấu hai chấm. Sử dụng các đối số có tên là tùy chọn, nhưng làm như vậy có thể làm cho mã của bạn dễ hiểu hơn. Câu lệnh thứ hai trong thủ tục CopyOne có thể được viết như sau:
Range ("A1"). Sao chép Điểm đến: = Phạm vi ("B1")
Chú ý dấu nhắc nhỏ khi câu lệnh đang được gõ. Dấu nhắc đó hiển thị tên chính thức của đối số.
VBE sẽ hiển thị một danh sách các đối số trong khi bạn gõ.Bởi vì bộ sưu tập cũng là một đối tượng, bộ sưu tập có các phương pháp. Cú pháp sau đây sử dụng phương pháp Add cho bộ sưu tập Workbook:
Tiểu sổ Phụ AddAWorkbook (). Thêm End Sub
Như bạn mong đợi, câu lệnh này tạo ra một bảng tính mới. Nói cách khác, nó thêm một bảng tính mới vào bộ sưu tập Workbook. Sau khi bạn thực hiện macro này, một bảng tính mới sẽ là bảng tính hoạt động.
Sự kiện đối tượng
Có một chủ đề nữa mà bạn cần biết về: các sự kiện. Đối tượng đáp ứng với các sự kiện khác nhau xảy ra. Ví dụ, khi bạn đang làm việc trong Excel và bạn kích hoạt một bảng tính khác, một sự kiện Sự kiện Kích hoạt sẽ xuất hiện. Bạn có thể, ví dụ, có một macro VBA được thiết kế để thực hiện bất cứ khi nào một sự kiện Kích hoạt xảy ra cho một đối tượng Workbook cụ thể.
Excel hỗ trợ nhiều sự kiện, nhưng không phải tất cả các đối tượng có thể đáp ứng với tất cả các sự kiện. Và một số vật thể không đáp lại bất kỳ sự kiện nào.Các sự kiện duy nhất bạn có thể sử dụng là những sự kiện được lập trình sẵn có bởi các lập trình viên của Microsoft Excel.