Hàm VBA CLng | Làm thế nào để sử dụng Hàm CLng? (với các ví dụ)
Hàm CLng VBA trong Excel
“CLNG” có nghĩa là kiểu dữ liệu “Chuyển đổi sang Dài”. Giới hạn kiểu dữ liệu số nguyên là từ -32768 đến 32767, vì vậy bất kỳ thứ gì vượt quá bạn muốn lưu trữ vào các biến này thì chúng ta cần sử dụng kiểu dữ liệu LONG trong VBA.
Các biến là chìa khóa trong bất kỳ ngôn ngữ lập trình nào và VBA cũng không khác. Nếu không sử dụng các biến thì việc viết các mã dài gần như là một nhiệm vụ bất khả thi. Nếu các biến là quan trọng thì biến kiểu dữ liệu mà chúng ta gán cho các biến này thậm chí còn quan trọng hơn vì kiểu dữ liệu mà chúng ta gán cho chúng là kết quả cuối cùng mà chúng ta nhận được.
Thông thường, chúng ta có thể gán dữ liệu số là "Chuỗi", do đó, điều này sẽ gây ra lỗi khi thực hiện tính toán, vì vậy bằng cách sử dụng các hàm chuyển đổi, chúng ta có thể chuyển đổi kiểu dữ liệu mà chúng ta muốn. Các chức năng chuyển đổi thường được sử dụng là CLng, CInt, CDbl, CDate, CDec trong vba. Trong bài viết này, chúng tôi sẽ giới thiệu cho các bạn về hàm chuyển đổi kiểu dữ liệu số nguyên “CLNG”.
Cú pháp
Dưới đây là cú pháp của hàm CLNG.
- Biểu thức không là gì ngoài giá trị hoặc biến mà chúng ta muốn chuyển đổi thành kiểu dữ liệu LONG.
Lưu ý: Giá trị mà chúng tôi đang cố gắng chuyển đổi phải là một số bất kỳ thứ gì khác với giá trị số sẽ gây ra "Lỗi thời gian chạy 13: Loại không khớp"
Ví dụ để sử dụng hàm CLng trong VBA
Bạn có thể tải Mẫu VBA CLNG Excel này tại đây - Mẫu VBA CLNG ExcelVí dụ 1
Bây giờ chúng ta sẽ xem cách chúng ta chuyển đổi giá trị văn bản được lưu trữ thành kiểu dữ liệu "Dài".
Để biết ví dụ, hãy xem đoạn mã dưới đây.
Mã:
Sub CLNG_Example1 () Dim LongNumber Như chuỗi Dim LongResult As Long LongNumber = "2564589" LongResult = CLng (LongNumber) MsgBox LongResult End Sub
Vì vậy, bây giờ hãy kiểm tra kỹ mã để hiểu cách hoạt động của nó.
Đầu tiên, chúng ta đã khai báo hai biến String và Long tương ứng.
Mã:
Dim LongNumber As String Dim LongResult As Long
Đối với biến chuỗi, chúng tôi đã gán số giá trị nhưng trong dấu ngoặc kép, vì vậy điều này sẽ làm là nó sẽ coi số “2564589” là một chuỗi, không phải là biến “Dài”. Bây giờ đối với biến LongResult khác, chúng tôi đã sử dụng hàm Clng (LongNumber) để chuyển đổi chuỗi số được lưu trữ thành biến LONG.
Hộp thông báo tiếp theo sẽ hiển thị kết quả là một số DÀI được chuyển đổi từ kiểu dữ liệu chuỗi sang kiểu dữ liệu dài.
Đầu ra:
Ví dụ số 2
Bây giờ hãy xem đoạn mã dưới đây.
Mã:
Sub CLNG_Example2 () Dim LongNumber Như chuỗi Dim LongResult As Long LongNumber = "Long Number" LongResult = CLng (LongNumber) MsgBox LongResult End Sub
Điều này sẽ cho chúng tôi kết quả là "Loại không khớp" .
Hiểu được tại sao lỗi lại xảy ra là rất quan trọng để sửa lỗi. Khi bạn xem xét kỹ các biến cho biến LongNumber đầu tiên, chúng tôi đã gán giá trị văn bản là “Số dài” thì chúng tôi đã sử dụng hàm VBA CLNG trong excel để chuyển đổi này thành kiểu dữ liệu LONG.
Lý do tại sao chúng tôi gặp lỗi này là kiểu dữ liệu LONG chỉ có thể chấp nhận kiểu dữ liệu số vì chúng tôi đã cung cấp giá trị chuỗi cho biến, nó không thể chuyển đổi giá trị chuỗi hoặc giá trị văn bản thành kiểu dữ liệu dài, do đó, nó gây ra lỗi là “ Loại không phù hợp".
Ví dụ # 3
Một lỗi nữa mà chúng tôi gặp phải với kiểu dữ liệu LONG là “Lỗi tràn trong vba” tức là kiểu dữ liệu biến dài có thể giữ các giá trị từ -2,147,483,648 đến 2,147,483,647. Vì vậy, bất kỳ giá trị nào trên giá trị này sẽ gây ra lỗi tràn.
Để biết ví dụ, hãy xem đoạn mã dưới đây.
Mã:
Sub CLNG_Example3 () Dim LongNumber Như chuỗi Dim LongResult As Long LongNumber = "25645890003" LongResult = CLng (LongNumber) MsgBox LongResult End Sub
Đối với biến “LongNumber”, tôi đã gán số “25645890003” vượt quá giới hạn của kiểu dữ liệu “Long”. Khi chúng tôi chạy đoạn mã trên, nó sẽ gặp phải lỗi "Overflow" .
Vì vậy, khi bạn chuyển đổi bất kỳ kiểu dữ liệu nào khác sang kiểu dữ liệu Dài, chúng ta cần ghi nhớ tất cả những điều trên.
Điều cần nhớ ở đây
- CLNG là viết tắt của chuyển đổi thành dài.
- Hàm này chuyển đổi kiểu dữ liệu khác thành kiểu dữ liệu dài.
- Bạn cần biết giới hạn của kiểu dữ liệu dài để tránh lỗi tràn.