Số định dạng VBA | Làm thế nào để định dạng số với VBA NumberFormat?

Hàm định dạng trong VBA được sử dụng để định dạng các giá trị đã cho theo định dạng mong muốn, về cơ bản hàm này có hai đối số bắt buộc, một là đầu vào được lấy ở dạng chuỗi và đối số thứ hai là loại định dạng mà chúng ta muốn sử dụng ví dụ: nếu chúng tôi sử dụng Định dạng (.99, ”Phần trăm”), điều này sẽ cho chúng tôi kết quả là 99%.

Định dạng số trong VBA Excel

VBA đi trước các hàm excel thông thường. VBA có nhiều hàm tích hợp riêng giống như cách chúng ta có hơn 500 hàm trong trang tính. Một trong những công thức như vậy trong VBA là “Số định dạng”.

Vâng, bạn đã nghe đúng, chúng tôi có một chức năng được gọi là “FormatNumber” trong VBA. Trong bài viết này, chúng tôi sẽ giới thiệu riêng về chức năng này.

Làm thế nào để định dạng số với VBA NumberFormat?

Như chính tên hàm đã nói, nó sẽ định dạng một số nhất định theo hướng dẫn định dạng mà người dùng đưa ra.

Định dạng số không có gì khác ngoài việc thêm dấu thập phân, đặt các số âm trong dấu ngoặc đơn, hiển thị các số 0 đứng đầu cho các giá trị thập phân, v.v. Sử dụng hàm FormatNumber của VBA,  chúng ta có thể áp dụng kiểu định dạng cho các số mà chúng ta làm việc. Dưới đây là cú pháp của hàm

  • Biểu thức: Đây không là gì ngoài số chúng ta cần định dạng.
  • Số chữ số sau số thập phân: Có bao nhiêu chữ số bạn muốn cho vị trí số thập phân ở phía bên phải của số.
  • Bao gồm chữ số hàng đầu: Chữ số hàng đầu không là gì ngoài các chữ số trước khi số bắt đầu. Điều này có thể áp dụng cho các giá trị nhỏ hơn 1 nhưng lớn hơn -1.
    • Nếu bạn muốn hiển thị số 0 trước giá trị thập phân, bạn có thể chuyển đối số là TRUE hoặc -1 và kết quả sẽ là. “0,55”
    • Nếu bạn không muốn hiển thị số 0 trước giá trị thập phân, bạn có thể chuyển đối số là FALSE hoặc 0 và kết quả sẽ là “.55”
    • Theo giá trị mặc định sẽ là -2 tức là cài đặt máy tính khu vực.
  • Sử dụng cha mẹ cho số âm: Nếu bạn muốn hiển thị số âm trong dấu ngoặc đơn, bạn có thể chuyển đối số là TRUE hoặc -1 và kết quả sẽ là. “(255)”
    • Nếu bạn muốn hiển thị các số âm mà không có dấu ngoặc đơn, bạn có thể chuyển đối số là FALSE hoặc 0 và kết quả sẽ là. “-255”
  • Chữ số trong nhóm: Cho dù bạn có muốn thêm dấu phân cách hàng nghìn hay không. Nếu có TRUE hoặc -1 là đối số, nếu không FALSE hoặc 0 là đối số. Theo mặc định, giá trị là -2 tức là bằng cài đặt khu vực máy tính.

Ví dụ về hàm FormatNumber trong Excel VBA

Chúng ta sẽ xem các ví dụ thực tế về chức năng Số định dạng VBA trong Excel. Chúng tôi sẽ thực hiện từng đối số riêng biệt.

Vì mục đích này, hãy tạo tên macro và khai báo một trong các biến dưới dạng chuỗi. Lý do tại sao chúng ta cần khai báo biến dưới dạng chuỗi vì kết quả được đưa ra bởi hàm FormatNumber trong VBA chỉ là chuỗi.

Bạn có thể tải xuống Mẫu hàm số định dạng VBA này tại đây - Mẫu hàm số định dạng VBA

Mã:

 Sub Format_Number_Example1 () Dim MyNum As String End Sub 

Ví dụ # 1 - Thêm dấu chấm thập phân ở phía trước số

Bước # 1 - Giả sử chúng ta đang làm việc với số 25000 và chúng ta cần định dạng nó và thêm dấu thập phân vào bên phải số. Gán một giá trị cho biến của chúng ta.

Mã:

 Sub Format_Number_Example1 () Dim MyNum As String MyNum = FormatNumber (End Sub 

Bước # 2 -  Đầu tiên là biểu thức tức là số chúng ta cần định dạng là gì, vì vậy số của chúng ta là 25000.

Mã:

 Sub Format_Number_Example1 () Dim MyNum As String MyNum = FormatNumber (25000, End Sub 

Bước # 3 -  Tiếp theo là chúng ta cần thêm bao nhiêu chữ số tức là 2 chữ số.

Mã:

 Sub Format_Number_Example1 () Dim MyNum As String MyNum = FormatNumber (25000, 2) End Sub 

Bước # 4 -  Hiển thị giá trị của biến trong hộp thông báo VBA.

Mã:

 Sub Format_Number_Example1 () Dim MyNum As String MyNum = FormatNumber (25000, 2) MsgBox MyNum End Sub 

Bước # 5 -  Kết quả của macro này là như thế này.

Chúng ta có thể thấy hai số thập phân ở bên phải số.

Ví dụ # 2 - Số nhóm tức là Dấu phân cách nghìn

Đối với cùng một số, chúng ta có thể thêm hoặc xóa một nghìn dấu phân cách. Nếu chúng ta muốn hiển thị một nghìn dấu phân cách thì chúng ta cần chọn vbTrue cho đối số cuối cùng.

Mã:

 Sub Format_Number_Example1 () Dim MyNum As String MyNum = FormatNumber (25000, 2,,, vbTrue) MsgBox MyNum End Sub 

Điều này sẽ ném ra kết quả như thế này.

Bây giờ nếu chọn vbFalse thì chúng ta sẽ không nhận được một nghìn dấu phân cách.

Mã:

 Sub Format_Number_Example1 () Dim MyNum As String MyNum = FormatNumber (25000, 2,,, vbFalse) MsgBox MyNum End Sub 

Kết quả của đoạn mã này như thế này.

Nếu tôi chọn vbUseDefault, chúng tôi sẽ nhận được kết quả theo cài đặt hệ thống. Dưới đây là kết quả của việc này.

Vì vậy, cài đặt hệ thống của tôi có một nghìn dấu phân cách theo mặc định.

Ví dụ # 3 - Kèm theo dấu ngoặc đơn cho các số phủ định

Nếu chúng ta có số âm, chúng ta có thể hiển thị số âm trong ngoặc đơn. Chúng ta cần chọn vbTrue trong “Sử dụng cha mẹ cho số âm”.

Mã:

 Sub Format_Number_Example1 () Dim MyNum As String MyNum = FormatNumber (-25000, 2,, vbTrue) MsgBox MyNum End Sub 

Bây giờ kết quả như thế này.

Nếu chúng ta chọn vbFalse, chúng ta sẽ nhận được một số âm với một dấu trừ.

Mã:

 Sub Format_Number_Example1 () Dim MyNum As String MyNum = FormatNumber (-25000, 2,, vbFalse) MsgBox MyNum End Sub 

Bây giờ kết quả như thế này.


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