Hướng dẫn cách khai báo biến đối tượng trong VBA Excel

Việc sử dụng biến trong lập trình VBA là rất quan trọng. Trong bài viết về Hướng dẫn cách khai báo biến khi viết code trong VBA Excel chúng ta đã được tìm hiểu chung về cú pháp khai báo biến thông thường. Nhưng trong VBA còn có 1 loại biến để gán cho 1 đối tượng cụ thể như Workbook, Worksheet, Range… thì làm như thế nào? Hãy cùng Học Excel Online tìm hiểu cách khai báo biến đối tượng trong VBA Excel trong bài viết này nhé.

Phân biệt biến đối tượng và biến giá trị

Biến đối tượng là biến đại diện cho 1 đối tượng cụ thể (Object):

  • Workbook, Worksheet, Range
  • Shape, Picture…

Biến đối tượng chủ yếu liên quan tới Tên đối tượng, vị trí đặt đối tượng, phạm vi kích thước của đối tượng.

Còn biến giá trị thì thể hiện cho 1 giá trị (Value, Variant):

  • Giá trị dạng số: Integer, Long, Single, Double…
  • Giá trị dạng ngày tháng: Date
  • Giá trị dạng ký tự, văn bản: String

Do đó khi làm việc viết 2 loại biến này, cú pháp khai báo biến cũng khác nhau

Cú pháp khai báo biến đối tượng

Ví dụ chúng ta muốn gán biến MyWB cho Workbook nơi chứa câu lệnh Macro thì viết như sau:

  • Từ khóa Dim dùng để xác định phạm vi của biến
  • MyWB là tên biến
  • Workbook là loại đối tượng của biến
  • Set là từ khóa dùng để chỉ rõ biến đó được gán cho đối tượng nào
  • ThisWorbook là tên của đối tượng (Workbook nơi chứa câu lệnh Macro)

Ứng dụng biến đối tượng trong lập trình VBA

Ví dụ chúng ta có yêu cầu như sau:

Tại Workbook 1 có bảng báo cáo từ vùng B1:C17 tại Sheet1

Viết Macro rồi gán vào Shape Export, khi bấm vào Shape đó sẽ chạy Macro trích xuất dữ liệu đó sang vùng A1:B17 của Sheet1 trong 1 Workbook mới.

Cách làm như sau:

1. Phân tích các bước thực hiện (Quy trình)

Ở đây chúng ta có 2 đối tượng Workbook: 1 Workbook đã có sẵn với phần báo cáo, 1 Workbook được thêm mới để nhận dữ liệu từ Workbook có sẵn.

Do đó để dễ gọi tên và làm việc với đúng các Workbook, chúng ta sẽ đặt 2 biến cho 2 Workbook này.

  • Workbook có sẵn phần báo cáo là MyWB
  • Workbook được thêm mới là NewWB

Công việc gồm:

  • Tạo mới 1 Worbook
  • Copy dữ liệu từ MyWB, Sheet1, phần Range là B1:C17
  • Dán vào NewWB, Sheet1, vùng Range là A1:B17. Nội dung dán gồm Value, Format và Column Width

2. Câu lệnh code trong VBA

Như vậy khi làm việc với các đối tượng khác nhau, dễ nhầm lẫn, chúng ta nên sử dụng phương pháp đặt biến đối tượng. Thay vì gọi rõ tên đối tượng thì chúng ta chỉ cần gọi biến đã gán cho đối tượng đó.

Các bạn có thể tải về file mẫu cho ví dụ trên tại địa chỉ: http://bit.ly/2Ndpybg

Ngoài ra để làm việc tốt hơn với các đối tượng trong VBA, các bạn có thể tìm hiểu các bài viết:

Hướng dẫn cách viết code với đối tượng Range trong VBA Excel

Hướng dẫn cách viết code với đối tượng Workbook trong VBA Excel

Hướng dẫn cách viết code với đối tượng Worksheet trong VBA Excel


Tác giả: duongquan211287

· · ·

Khóa học mới xuất bản