Chuỗi VBA thành số nguyên - Sử dụng hàm CINT để chuyển đổi dữ liệu

Chuỗi VBA sang số nguyên trong Excel

Chuỗi và Số nguyên là các kiểu dữ liệu phổ biến, nhưng thường là một phần của phân tích dữ liệu của chúng tôi, chúng tôi có thể muốn chuyển đổi biến kiểu dữ liệu chuỗi thành kiểu dữ liệu số nguyên và điều này có thể thực hiện được bằng cách sử dụng hàm “CINT” trong VBA.

Cú pháp của hàm CINT

“CINT” được phân loại là một hàm chuyển đổi kiểu dữ liệu. Hàm này chuyển đổi biểu thức đã cung cấp thành kiểu dữ liệu Số nguyên. Khi tôi nói "Biểu thức", nó phải là một giá trị số nằm trong phạm vi của kiểu dữ liệu Số nguyên trong VBA, tức là từ -32768 đến 32767.

Bây giờ, hãy xem cú pháp của hàm CINT trong VBA.

  • Biểu thức là giá trị hoặc biến có chứa giá trị được chuyển đổi thành Kiểu dữ liệu số nguyên.
Lưu ý 1: Chỉ khi bạn chuyển giá trị biểu thức phải từ -32768 đến 32767. Nếu không, nó sẽ dẫn đến “Lỗi dòng chảy quá mức”, tức là chỉ định giá trị vượt quá giới hạn của kiểu dữ liệu. Lưu ý 2: Biểu thức phải là một giá trị số. Nếu biểu thức là giá trị chuỗi hoặc giá trị văn bản, nó sẽ gây ra “Lỗi thời gian chạy 13: Nhập không khớp”.

Trong bài viết này, chúng tôi sẽ giới thiệu cho các bạn về cách chuyển đổi kiểu dữ liệu số nguyên từ chuỗi sang số nguyên bằng cách sử dụng hàm “CINT”.

Ví dụ về hàm CINT trong VBA

Ví dụ 1

Hãy thực hiện ví dụ đầu tiên về việc chuyển đổi một số phân số thành Kiểu dữ liệu số nguyên.

Mã:

Sub CINT_Example1 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 2564.589 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub
  • Trong đoạn mã trên cho biến “IntegerNumber”, tôi đã gán giá trị là “2564.589”.
  • Trong dòng tiếp theo, tôi đã áp dụng một hàm CINT. Vì vậy, nó sẽ chuyển đổi giá trị được cung cấp thành số nguyên gần nhất.

Vì vậy, chúng tôi nhận được kết quả - 2565, và số được cung cấp là 2564.589. Khi giá trị thập phân lớn hơn 0,5, hàm CINT làm tròn số thành số nguyên tiếp theo. Khi giá trị thập phân nhỏ hơn hoặc bằng 0,5, hàm CINT làm tròn xuống cùng một số nguyên.

Để biết ví dụ, hãy xem đoạn mã dưới đây, nơi số nhỏ hơn 0,5

Mã:

Sub CINT_Example1 () Dim IntegerNumber Như chuỗi Dim IntegerResult As Integer IntegerNumber = 2564 - 0.5 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Điều này sẽ cho kết quả là 2564, không phải 2565.

Ví dụ số 2

Bây giờ tôi sẽ thử và gán số lớn hơn giới hạn của kiểu dữ liệu Integer.

Mã:

Sub CINT_Example2 () Dim IntegerNumber Như chuỗi Dim IntegerResult As Integer IntegerNumber = 51456.785 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Tôi đã chỉ định số là “IntegerNumber = 51456.785”, nhiều hơn giới hạn của giới hạn kiểu dữ liệu Integer. Bây giờ nếu tôi cố gắng chạy mã, nó sẽ xuất hiện lỗi tràn trong VBA.

Bất cứ khi nào số được cung cấp nhiều hơn kiểu dữ liệu Số nguyên, hãy hiển thị hộp thông báo đơn giản cho biết “Số nhiều hơn giới hạn của kiểu dữ liệu số nguyên”.

Mã:

Sub CINT_Example2() Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 51456.785 On Error GoTo Message: IntegerResult = CInt(IntegerNumber) Message: If Err.Number = 6 Then MsgBox IntegerNumber & " is More Than the Limit of the Integer Data Type" End Sub

This will show the message like the below whenever the provided number is out of the range of Integer data type.

Example #3

Now I will try and assign the value which is not numeric.

Sub CINT_Example2() Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = "Hello" IntegerResult = CInt(IntegerNumber) MsgBox IntegerResult End Sub

I have assigned the value as “Hello” which is not numeric. This causes “Type Mismatch Error”.

Instead of showing the error like this, let’s put a simple information message box in front of the user. The below code will put the message box saying “The Provided Expression Value is Non-Numeric, So cannot be converted”.

Code:

Sub CINT_Example2() Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = "Hello" On Error GoTo Message: IntegerResult = CInt(IntegerNumber) Message: If Err.Number = 13 Then MsgBox IntegerNumber & " : The Provided Expression Value is Non-Numeric, So cannot be converted" End Sub

This will show the message box below.

Things to Remember

  • CINT converts value from another data type to an integer data type.
  • Integer can hold values from -32768 to 32767 anything above these numbers will cause an overflow error.
  • Chỉ kiểu dữ liệu chuỗi chứa dữ liệu số sẽ được chuyển đổi thành kiểu dữ liệu số nguyên.

Các bài báo được đề xuất

Đây là một hướng dẫn về VBA String to Integer. Ở đây chúng tôi thảo luận về các ví dụ về chuỗi thành số nguyên trong Excel VBA bằng cách sử dụng hàm CINT cùng với các ví dụ thực tế và mẫu excel có thể tải xuống. Dưới đây là một số bài viết hữu ích liên quan đến VBA -

  • VBA tách chuỗi thành mảng
  • Chuỗi VBA cho đến nay
  • So sánh chuỗi VBA
  • Chuỗi thay thế VBA

thú vị bài viết...