VBA DIM – HƯỚNG DẪN ĐẦY ĐỦ

Dim là từ viết tắt của Dimension sử dụng để khai báo các biến trong VBA. Bài viết sau đây Học Excel Online sẽ dành để hướng dẫn đầy đủ về sử dụng câu lệnh VBA Dim.

Bảng hướng dẫn nhanh sử dụng câu lệnh Dim trong VBA

Description Format Example
Biến đơn giản Dim [Tên biến] As [Kiểu dữ liệu] Dim count As Long

Dim amount As Currency

Dim name As String

Dim visible As Boolean

Khai báo chuỗi cố định Dim [Tên biến] As String * [kích thước biến] Dim s As String * 4

Dim t As String * 10

Variant Dim [Tên biến] As Variant

Dim [Tên biến]

Dim var As Variant

Dim var

Khai báo đối tượng Object Dim [tên biến] As New [object type] Dim coll As New Collection

Dim coll As New Class1

Object using Dim, Set and New Dim [tên biến]  As [object type]

Set [Tên biến] = New [object type]

Dim coll As Collection

Set coll = New Collection

Dim coll As Class1

Set coll = New Class1

Khai báo mảng cố định (mảng tĩnh) Dim [Tên biến]([first] To [last] ) As [Type] Dim arr(1 To 6) As Long
Khai báo mảng động Dim [Tên biến]() As [Type]

ReDim [Tên biến]([first] To [last])

Dim arr() As Long

ReDim arr(1 To 6)

External Library

(Early Binding)*

Dim [Tên biến] As New [item] Dim dict As New Dictionary
External Library

(Early Binding using Set)*

Dim [Tên biến] As [item]

Set [Tên biến] = New [item]

Dim dict As Dictionary

Set dict = New Dictionary

External Library

(Late Binding)

Dim [Tên biến] As Object

Set [Tên biến] = CreateObject(“[library]”)

Dim dict As Object

Set dict = CreateObject(“Scripting.Dictionary”)

Câu lệnh VBA Dim là gì ?

Dim là từ viết tắt của Dimension sử dụng để khai báo các biến trong VBA. Có 4 loại câu lệnh Dim và khá giống nhau về cú pháp :

  • Các biến cơ bản : biến này chứa một giá trị có thể là Long, String (chuỗi), Double, Currency.
  • Variant :quyết định loại biến được sử dụng khi mã chạy. Nên hạn chế sử dụng variant ngoại trừ các trường hợp bắt buộc.
  • Object : đây là biến có nhiều phương thức (các sub/ hàm). Được phân 3 loại như sau:
  •  Các đối tượng Excel: workbook, worksheet và range (vùng dữ liệu).
  • Đối tượng được tạo bằng module.
  • Dữ liệu bên ngoài như dictionary. (từ điển)
  • Array : một nhóm các biến hoặc đối tượng.

Định dạng của câu lệnh VBA Dim

Định dạng như sau:

1- VBA Dim hướng dẫn đầy đủ
1- VBA Dim hướng dẫn đầy đủ

Dưới đây là các ví dụ về việc sử dụng các định dạng khác nhau:

2- VBA Dim hướng dẫn đầy đủ
2- VBA Dim hướng dẫn đầy đủ

Sử dụng câu lệnh Dim với nhiều biến

Có thể khai báo nhiều biến trong một câu lệnh Dim:

3- VBA Dim hướng dẫn đầy đủ
3- VBA Dim hướng dẫn đầy đủ

Nếu chúng ta bỏ qua kiểu biến thì VBA sẽ tự động đặt kiểu thành Variant. Chúng ta sẽ xem thêm về Variant sau:

4- VBA Dim hướng dẫn đầy đủ
4- VBA Dim hướng dẫn đầy đủ

Khi khai báo nhiều biến cần chỉ định loại biến cụ thể:

5- VBA Dim hướng dẫn đầy đủ
5- VBA Dim hướng dẫn đầy đủ

Có thể đặt bao nhiêu biến tùy thích trong một câu lệnh Dim nhưng hơn hết là 3 hoặc 4 biến để dễ đọc.

Vị trí đặt câu lệnh Dim

Câu lệnh Dim có thể được đặt ở bất kỳ đâu nhưng phải trước các dòng biến được sử dụng. Nếu biến đứng trước câu lệnh Dim thì sẽ gặp lỗi “Variable not defined”.

6- VBA Dim hướng dẫn đầy đủ
6- VBA Dim hướng dẫn đầy đủ

Khi định vị câu lệnh Dim có thể thực hiện hai cách, có thể đặt tất cả các câu lệnh Dim ở đầu mã như sau:

7- VBA Dim hướng dẫn đầy đủ
7- VBA Dim hướng dẫn đầy đủ

Hoặc có thể khai báo biến ngay lập tức trước khi sử dụng:

8- VBA Dim hướng dẫn đầy đủ
8- VBA Dim hướng dẫn đầy đủ

Sử dụng Dim trong các vòng lặp

Đặt câu lệnh Dim trong vòng lặp không ảnh hướng đến các biến. Khi VBA bắt đầu một Sub hoặc hàm thì điều đầu tiên là tạo tất cả các biến được khai báo trong câu lệnh Dim. 

9- VBA Dim hướng dẫn đầy đủ
9- VBA Dim hướng dẫn đầy đủ

2 đoạn mã sau đây gần giống nhau. Đầu tiên, biến Count được khai báo trước vòng lặp. Trong mã thứ hai biến được khai báo trong vòng lặp:

10- VBA Dim hướng dẫn đầy đủ
10- VBA Dim hướng dẫn đầy đủ

Mã sẽ hoạt động giống hệt nhau vì VBA sẽ tạo các biến khi nó nhập vào Sub.

Có thể sử dụng Dim để gán giá trị không?

Trong C ++, C # và Java, chúng ta có thể khai báo và gán các biến trên cùng một dòng:

11- VBA Dim hướng dẫn đầy đủ
11- VBA Dim hướng dẫn đầy đủ

Điều này không thể làm trong VBA mà thay vào đó sẽ sử dụng toán tử dâu hai chấm để đặt ở các dòng khai báo và gán trên cùng một dòng:

12- VBA Dim hướng dẫn đầy đủ
12- VBA Dim hướng dẫn đầy đủ

Hoặc có thể đặt chúng hai dòng riêng biệt:

13- VBA Dim hướng dẫn đầy đủ
13- VBA Dim hướng dẫn đầy đủ

Hoặc đặt 3 dòng mã trên một dòng bằng cách sử dụng dấu hai chấm:

14- VBA Dim hướng dẫn đầy đủ
14- VBA Dim hướng dẫn đầy đủ

Câu lệnh Dim có cần thiết hay không?

VBA không yêu cầu bắt buộc sử dụng câu lệnh Dim, tuy nhiên nếu không sử dụng có thể phát sinh một số vấn đề:

  1. Tất cả các biến đều là variant.
  2. Một số lỗi biến sẽ không bị phát hiện.

Vì vậy sử dụng Dim sẽ hữu ích cho mã. Chúng ta thực hiện bằng cách sử dụng lệnh Option Explicit. Nói chúng Vai trò của câu lệnh Dim trong VBA là tùy trường hợp

Option Explicit

Chúng ta có thể đặt Dim trong một module bằng cách nhập Option Explicit ở đầu module. Để điều này xảy ra tự động trong mỗi module mới có thể làm như sau : Tool–>Options và chọn Require Variable Declaration.Sau đó, khi chèn module mới thì Option Explicit sẽ tự đồng thêm vào.

15- VBA Dim hướng dẫn đầy đủ
15- VBA Dim hướng dẫn đầy đủ

Tiếp theo là một số lỗi nếu không sử dụng lệnh Dim.

Lỗi biến

Lỗi biến trong VBA thì sao? Trong đoạn mã dưới đây, chúng tôi sử dụng biến Total mà không sử dụng câu lệnh Dim.

16- VBA Dim hướng dẫn đầy đủ
16- VBA Dim hướng dẫn đầy đủ

Nếu chúng ta đánh nhầm Total thì VBA sẽ coi là một biến mới. Ví dụ như mã dưới đây viết sai Total thành Totall:

17- VBA Dim hướng dẫn đầy đủ
17- VBA Dim hướng dẫn đầy đủ

VBA sẽ không phát hiện bất kỳ lỗi nào trong mã và sẽ in một giá trị không chính xác.

Chúng ta sẽ thêm Option Explicit và thử lại:

18- VBA Dim hướng dẫn đầy đủ
18- VBA Dim hướng dẫn đầy đủ

Khi chạy mã sẽ nhận lỗi “Variable not defined” (Biến không được xác định). Để ngăn lỗi này chúng ta cần sử dụng Dim cho biến. 

19- VBA Dim hướng dẫn đầy đủ
19- VBA Dim hướng dẫn đầy đủ

Lỗi sai từ khóa

Đây là lỗi điển hình thứ 2. Khi mã chạy sẽ thay đổi phông chữ ô A1 thành màu xanh lam nhưng khi chạy không có gì xảy ra. 

20- VBA Dim hướng dẫn đầy đủ
20- VBA Dim hướng dẫn đầy đủ

Lỗi rgblue phải là rgbBlue. Nếu bạn thêm Option Explicit vào mô-đun, lỗi variable not defined sẽ xuất hiện. Điều này làm cho việc giải quyết vấn đề dễ dàng hơn nhiều.

Sử dụng Dim với các biến cơ bản

VBA sử dụng các kiểu kiến tương tự như trong Excel.

Tuy nhiên các biến chính được sử dụng :

Type Storage Range Mô tả
Boolean 2 bytes True or False Biến này có thể là True hoặc False.
Long 4 bytes -2,147,483,648 to 2,147,483,647 Long là viết tắt của Long Integer. Sử dụng kiểu này thay vì kiểu Integer *.
Currency 8 bytes -1.79769313486231E308 to-4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values Tương tự như Double nhưng chỉ có 4 chữ số thập phân
Double 8 bytes -922,337,203,685,477.5808 to 922,337,203,685,477.5807
Date 8 bytes January 1, 100 to December 31, 9999
String varies 0 to approximately 2 billion Giữ nguyên văn bản

*Ban đầu, chúng tôi sẽ sử dụng kiểu Long thay vì Integrate (số nguyên) vì biến này là 16-bit và do đó phạm vi từ -32,768 đến 32,767, khá nhỏ đối với nhiều trường hợp.

Tuy nhiên, trên hệ thống 32 bit (hoặc cao hơn), Integer được tự động chuyển đổi thành Long. Vì Windows đã có 32 bit kể từ Windows 9 \NT nên không có ích gì khi sử dụng Integer.

Tóm lại, luôn sử dụng Long cho kiểu số nguyên trong VBA.

Biến String

Khi chúng ta tạo một chuỗi bình thường trong VBA thì chúng ta có thể thêm văn bản và VBA sẽ tự động thay đổi kích thước chuỗi:

21- VBA Dim hướng dẫn đầy đủ
21- VBA Dim hướng dẫn đầy đủ

Tuy nhiên chuỗi cố định là chuỗi không bao giờ được thay đổi kích thước. Chuỗi này sẽ luôn có cùng kích thước bất kể bạn gán cho nó là gì. Ví dụ:

22- VBA Dim hướng dẫn đầy đủ
22- VBA Dim hướng dẫn đầy đủ

Sử dụng Dim với Variants

Khi chúng tôi khai báo một biến là một variant, VBA sẽ quyết định loại biến trong thời gian chạy.

23- VBA Dim hướng dẫn đầy đủ
23- VBA Dim hướng dẫn đầy đủ

Chúng tôi khai báo các biến thể như sau:

Có vẻ đây là điều lý tưởng:

24- VBA Dim hướng dẫn đầy đủ
24- VBA Dim hướng dẫn đầy đủ

Tuy nhiên, việc sử dụng variant có thể gây ra một số vấn đề như sau:

  1. Lỗi run time – VBA sẽ phát hiện lỗi kiểu biến không chính xác (tức là Dữ liệu không khớp).
  2. Lỗi biên dịch – VBA không thể phát hiện lỗi biên dịch.
  3. Intellisense không có sẵn.
  4. Kích thước – Một variant được đặt thành 16 byte là loại biến lớn nhất

Lỗi run time

25- VBA Dim hướng dẫn đầy đủ
25- VBA Dim hướng dẫn đầy đủ

Ví dụ: nếu có một bảng điểm của học sinh và bô tình dấu bằng văn bản thay thế bằng một dữ liệu không phù hợp Nếu sử dụng variant thì sẽ không xảy ra lỗi:

Tuy nhiên nếu dùng biến Long thì VBA sẽ cảnh báo lỗi “Type Mismatch” nếu dữ liệu là văn bản. Ví dụ:

26- VBA Dim hướng dẫn đầy đủ
26- VBA Dim hướng dẫn đầy đủ

Lỗi biên dịch

Sử dụng trình biên dịch để kiểm tra lỗi rất hiệu quả. Nó sẽ kiểm tra tất cả các mã để tìm các vấn đề trước khi chạy. Sử dụng trình biên dịch bằng cách chọn Debug-> Compile VBAProject từ menu.

27- VBA Dim hướng dẫn đầy đủ
27- VBA Dim hướng dẫn đầy đủ

Trong đoạn mã sau, có một lỗi. Hàm Square được dự đoán sẽ là biến long integer nhưng chúng ta đang truyền một chuỗi (ví dụ biến name ):

Nếu chúng tôi sử dụng Debug–>Biên dịch trên mã này, VBA sẽ hiển thị cho chúng tôi lỗi:

28- VBA Dim hướng dẫn đầy đủ
28- VBA Dim hướng dẫn đầy đủ

Có thể sửa lỗi này ngay lập tức, tuy nhiên nếu khai báo tham số là Value là một variant thì Debug.Compile sẽ không coi đây là một lỗi. Lỗi vẫn còn đó nhưng nó không bị phát hiện.

29- VBA Dim hướng dẫn đầy đủ
29- VBA Dim hướng dẫn đầy đủ

Truy cập Intellisense

Intellisense là một tính năng tuyệt vời của VBA, cung cấp các tùy chọn có sẵn dựa trên kiểu biến đã tạo.

30- VBA Dim hướng dẫn đầy đủ
30- VBA Dim hướng dẫn đầy đủ

Giả sử bạn khai báo một biến worksheet bằng cách sử dụng Dim :

31- VBA Dim hướng dẫn đầy đủ
31- VBA Dim hướng dẫn đầy đủ

Khi sử dụng biến wk có dấu thập phân, VBA sẽ tự động hiển thị các tùy chọn có sẵn cho biến.

32- VBA Dim hướng dẫn đầy đủ
32- VBA Dim hướng dẫn đầy đủ

Nếu bạn sử dụng Variant làm biến thì Intellisense sẽ không khả dụng vì VBA sẽ xác định loại biến cho đến thời gian chạy.

Kích thước Variant

Kích thước của một variant là 16 byte. Nếu biến là Long thì nó sẽ chỉ chiếm 4 byte.  Tuy nhiên, không giống như những năm 1990, giờ đây có những máy tính có rất nhiều bộ nhớ và sẽ hoạt động hiệu quả kể cả khi bạn đang sử dụng một lượng lớn các biến.

Sử dụng Dim với các đối tượng

Có 3 loại đối tượng:

  1. Đối tượng Excel
  2. Đối tượng Mô-đun lớp
  3. Đối tượng dictionary bên ngoài

Lưu ý: Đối tượng Bộ sưu tập VBA được sử dụng theo cách tương tự như cách sử dụng đối tượng Mô-đun lớp. 

Đối tượng Excel

Các đối tượng Excel như workbook, worksheet, range, v.v. không sử dụng New vì chúng được tạo tự động bởi Excel.

Khi một workbook được tạo hoặc mở thì Excel sẽ tự động tạo đối tượng được liên kết.

33- VBA Dim hướng dẫn đầy đủ
33- VBA Dim hướng dẫn đầy đủ

Ví dụ, trong đoạn mã dưới đây, chúng ta mở một workbook. VBA sẽ tạo đối tượng và hàm Open sẽ trả về một workbook mà chúng ta có thể lưu trữ trong một biến:

34- VBA Dim hướng dẫn đầy đủ
34- VBA Dim hướng dẫn đầy đủ

Nếu chúng ta tạo một trang tính mới, điều tương tự cũng xảy ra. VBA sẽ tự động tạo nó và cung cấp quyền truy cập sử dụng cho đối tượng.

Chúng tôi không cần sử dụng New keyword cho các đối tượng Excel này.

Chúng ta chỉ gán biến cho hàm tạo một đối tượng mới hoặc cho phép chúng ta truy cập vào một đối tượng hiện có.

35- VBA Dim hướng dẫn đầy đủ
35- VBA Dim hướng dẫn đầy đủ

Dưới đây là một số ví dụ về việc gán các biến workbook, worksheet và Range:

36- VBA Dim hướng dẫn đầy đủ
36- VBA Dim hướng dẫn đầy đủ
37- VBA Dim hướng dẫn đầy đủ
37- VBA Dim hướng dẫn đầy đủ

Sử dụng Dim với các đối tượng Module lớp

Trong VBA, chúng ta sử dụng Mô-đun lớp để tạo các đối tượng tùy chỉnh của riêng mình. Nếu chúng ta đang tạo một đối tượng mới thì chúng ta cần sử dụng từ khóa New .

Chúng ta có thể thực hiện điều này trong câu lệnh Dim hoặc trong câu lệnh Set .

38- VBA Dim hướng dẫn đầy đủ
38- VBA Dim hướng dẫn đầy đủ

Đoạn mã sau tạo một đối tượng bằng cách sử dụng từ khóa New trong câu lệnh Dim:

Sử dụng New trong câu lệnh Dim có nghĩa là một đối tượng sẽ được tạo mỗi khi mã chạy.

Sử dụng Set cho phép chúng ta linh hoạt hơn, có thể tạo nhiều đối tượng từ một biến. Cũng có thể tạo đối tượng dựa trên một điều kiện.

39- VBA Dim hướng dẫn đầy đủ
39- VBA Dim hướng dẫn đầy đủ

Đoạn mã sau đây cho thấy cách chúng tôi tạo một đối tượng Mô-đun lớp bằng cách sử dụng Set.

Ví dụ về việc sử dụng Set. Trong đoạn mã dưới đây, chúng ta muốn đọc qua một loạt dữ liệu. Chúng ta tạo một đối tượng nếu giá trị lớn hơn 50.

40- VBA Dim hướng dẫn đầy đủ
40- VBA Dim hướng dẫn đầy đủ

Sử dụng Set để tạo đối tượng Class1. Điều này là do số lượng đối tượng chúng ta cần phụ thuộc vào số lượng giá trị trên 50.

Đây là ví dụ đơn giản, tuy nhiên trong thực tế có thể điền dữ liệu vào đối tượng Module lớp và thêm vào các cấu trúc dữ liệu bộ sưu tập hay từ điển. Ví dụ:

41- VBA Dim hướng dẫn đầy đủ
41- VBA Dim hướng dẫn đầy đủ
42- VBA Dim hướng dẫn đầy đủ
42- VBA Dim hướng dẫn đầy đủ

Đối tượng từ thư viện bên ngoài

Một điều thực sự hữu ích mà chúng ta có thể làm với VBA là truy cập các thư viện bên ngoài ví dụ như thư viện Access, Outlook và Word. Chúng ta có thể sử dụng thư viện với nhiều loại khác nhau của cấu trúc dữ liệu như từ điển , các ArrayList , Stack và Queue.

Có các thư viện để truy cập một trang web (Thư viện đối tượng HTML của Microsoft), sử dụng Biểu thức chính quy (Microsoft VBScript Regular Expressions) và nhiều tác vụ khác.

Chúng ta có thể tạo các đối tượng này theo hai cách:

  1. Early Binding
  2. Late Binding

Early Binding

Early Binding nghĩa là thêm một tệp tham chiếu. Khi tệp này được thêm vào, chúng ta có thể coi đối tượng như một đối tượng mô-đun lớp.

Chúng tôi thêm một tham chiếu bằng Tools->Reference và sau đó chúng ta kiểm tra tệp thích hợp trong danh sách.

43- VBA Dim hướng dẫn đầy đủ
43- VBA Dim hướng dẫn đầy đủ

Ví dụ: để sử dụng Từ điển, chúng tôi kiểm tra “Microsoft Scripting Runtime”:

44- VBA Dim hướng dẫn đầy đủ
44- VBA Dim hướng dẫn đầy đủ

Khi chúng tôi đã thêm tham chiếu, chúng tôi có thể sử dụng Từ điển như một đối tượng mô-đun lớp.

Ưu điểm của early binding là chúng ta có quyền truy cập vào Intellisense, nhược điểm là có thể gây ra những vấn đề lộn xộn trên máy.

Nên sử dụng early binding để viết mã và sử dụng late binding để phân phối mã cho người dùng khác.

Late binding

45- VBA Dim hướng dẫn đầy đủ
45- VBA Dim hướng dẫn đầy đủ

Late binding có nghĩa là tạo đối tượng trong thời gian chay.  Chúng ta sẽ khai báo biến dưới dạng “Objective” sau đó sử dụng CreateObject để tạo đối tượng:

Sử dụng câu lệnh Dim với mảng

Có hai loại mảng như sau:

  1. Static – kích thước mảng được đặt trong câu lệnh Dim và nó không thể thay đổi.
  2. Dynamic – kích thước mảng không được đặt trong câu lệnh Dim mà nó được thiết lập với lệnh Redim
46- VBA Dim hướng dẫn đầy đủ
46- VBA Dim hướng dẫn đầy đủ

Mảng dynamic  linh hoạt hơn nhiều. Chúng ta có thể thiết lập size trong khi mã đang chạy.

47- VBA Dim hướng dẫn đầy đủ
47- VBA Dim hướng dẫn đầy đủ

Chúng ta sẽ khai báo mảng dynamic bằng cách sử dụng câu lệnh Dim và chúng ta thiết lập size (kích thước) bằng cách sử dụng ReDim.

Sử dụng lệnh Redim

48- VBA Dim hướng dẫn đầy đủ
48- VBA Dim hướng dẫn đầy đủ

Sự khác biệt lớn giữa Dim và ReDim là chúng ta có thể sử dụng biến trong câu lệnh ReDim. Trong câu lệnh Dim, kích thước phải là một giá trị không đổi.

Chúng ta thực sự có thể sử dụng Redim Statement mà không cần sử dụng Dim trước.

Trong ví dụ đầu tiên, bạn có thể thấy rằng chúng ta sử dụng Dim:

49- VBA Dim hướng dẫn đầy đủ
49- VBA Dim hướng dẫn đầy đủ
50- VBA Dim hướng dẫn đầy đủ
50- VBA Dim hướng dẫn đầy đủ

Trong ví dụ thứ hai, chúng ta sử dụng Redim:

Khắc phục sự cố lỗi Dim

Bảng dưới đây cho thấy các lỗi mà bạn có thể gặp phải khi sử dụng Dim.

 

Lỗi Kiểu Nguyên nhân
Array already dimensioned Biên dịch Sử dụng Redim trên một mảng static
Expected: identifier Cú pháp Sử dụng một từ danh từ riêng làm tên biến
Expected: New of type name Cú pháp Câu lệnh Dim thiếu loại tên.
Object variable or With block variable not set Run time New không được sử dụng để tạo đối tượng 
Object variable or With block variable not set Run time Set không được sử dụng để gán một biến đối tượng.
User-defined type not defined Biên dịch Loại không được nhận dạng. Có thể xảy ra nếu tệp tham chiếu không được thêm trong Công cụ-> Tham chiếu hoặc tên Mô-đun lớp bị sai chính tả.
Statement invalid outside Type block Biên dịch Thiếu tên biến trong câu lệnh Dim
Variable not defined Biên dịch Biến được sử dụng trước dòng Dim.

Biến local (cục bộ) và biến global (toàn cục)

Khi chúng ta sử dụng Dim trong một Sub hoặc Function, nó được coi là cục bộ. Các biến toàn cục được khai báo bên ngoài các sub

51- VBA Dim hướng dẫn đầy đủ
51- VBA Dim hướng dẫn đầy đủ

Trong đoạn mã dưới đây, chúng tôi đã khai báo count là một biến toàn cục:

Điều gì xảy ra nếu chúng ta có một biến toàn cục và một biến cục bộ có cùng tên?

52- VBA Dim hướng dẫn đầy đủ
52- VBA Dim hướng dẫn đầy đủ

Điều này không gây ra lỗi. VBA ưu tiên khai báo cục bộ.

Tình huống này sẽ dẫn đến rất nhiều phức tạp vì khó theo dõi count (số đếm )nào đang được sử dụng.

Nói chung nên tránh các biến toàn cục vì sẽ làm cho mã khó đọc và giá trị có thể thay đổi ở bất kỳ đâu trong mã.

Dim so với Private

52- VBA Dim hướng dẫn đầy đủ
52- VBA Dim hướng dẫn đầy đủ

Nếu sử dụng Private với một biến, một hàm hoặc một sub và có sẵn trong toàn bọ module như mã dưới đây:

Trong VBA, quy ước là sử dụng Private cho các biến toàn cục và Dim cho local:

53- VBA Dim hướng dẫn đầy đủ
53- VBA Dim hướng dẫn đầy đủ

Có 2 kiểu khai báo khác trong VBA được gọi là Public và Global.

Sau đây là tóm tắt của cả 4 loại:

  1. Dim – dùng để khai báo các biến cục bộ tức là trong các sub.
  2. Private – dùng để khai báo các biến và sub toàn cục. Các biến này chỉ có sẵn cho mô-đun hiện tại.
  3. Public – dùng để khai báo các biến và sub toàn cục. Các biến này có sẵn trong tất cả các mô-đun.
  4. Global – một phiên bản Public cũ hơn và lỗi thời. Chỉ có thể được sử dụng trong các mô-đun tiêu chuẩn, tồn tại để tương thích ngược.

Câu lệnh Dim VBA đã được hướng dẫn đầy đủ trong bài viết của Học Excel Online. Có thể tất cả những kiến thức về VBA Excel mà bạn đang tìm kiếm đều nằm trong chuỗi bài viết của chúng tôi. Truy cập VBA Excel để cùng học tập và vận dụng kiến thức miễn phí nhé!

 


Tác giả: dtnguyen (Nguyễn Đức Thanh)

· · ·

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