Bài viết được tư vấn chuyên môn bởi ông Võ Văn Hiếu – Giám đốc kỹ thuật của Trung tâm sửa chữa điện lạnh – điện tử Limosa

Trong VBA, hàm tự tạo (user-defined function) là một công cụ rất hữu ích để thực hiện các thao tác phức tạp và tùy chỉnh trong việc xử lý dữ liệu. Trong bài viết này, Trung tâm sửa chữa điện lạnh – điện tử Limosa sẽ hướng dẫn cách dùng hàm tự tạo trong VBA để bỏ chữ khỏi số.

Trung tâm Sửa chữa Điện lạnh – Điện tử Limosa
Trung tâm Sửa chữa Điện lạnh – Điện tử Limosa

1. Khái niệm về hàm tự tạo trong VBA

Hàm tự tạo trong VBA là một thủ tục hoặc phương thức được định nghĩa bởi người dùng, cho phép thực hiện các thao tác tùy chỉnh trên dữ liệu. Một hàm tự tạo có thể nhận đầu vào và trả về giá trị tương ứng sau khi xử lý.

cách dùng hàm tự tạo trong VBA để bỏ chữ khỏi số

2. Hướng dẫn cách dùng hàm tự tạo trong VBA để bỏ chữ khỏi số

Để tạo một hàm tự tạo trong VBA để bỏ chữ khỏi số, bạn có thể sử dụng các hàm xử lý chuỗi có sẵn trong VBA như là hàm InStr và hàm Mid để tách lấy các ký tự số từ chuỗi đầu vào. Dưới đây là một ví dụ về cách dùng hàm tự tạo trong VBA để bỏ chữ khỏi số như vậy:

Bước 1: Bước đầu tiên là tạo một hàm số tự tạo trong VBA bằng cách mở trình biên dịch VBA (nhấp đúp chuột vào một module trong phần mở rộng “Microsoft Excel Objects” trên cửa sổ Project Explorer của Excel), sau đó thêm đoạn mã sau vào module đó:

Function RemoveNonNumeric(strInput As String) As String

Dim strOutput As String

Dim i As Long

For i = 1 To Len(strInput)

If IsNumeric(Mid(strInput, i, 1)) Then

strOutput = strOutput & Mid(strInput, i, 1)

End If

Next i

RemoveNonNumeric = strOutput

End Function

Trong ví dụ này, hàm số RemoveNonNumeric nhận một chuỗi đầu vào và trả về một chuỗi không chứa bất kỳ ký tự nào ngoài các số từ 0 đến 9.

Bước 2: Sau khi tạo hàm số, bạn có thể sử dụng nó bằng cách gọi hàm số RemoveNonNumeric với chuỗi đầu vào:

Sub TestRemoveNonNumeric()

Dim strInput As String

Dim strOutput As String

strInput = “123abc456”

strOutput = RemoveNonNumeric(strInput)

MsgBox strOutput

End Sub

Trong ví dụ này, hàm số RemoveNonNumeric được gọi với chuỗi đầu vào là “123abc456”. Hàm số này sẽ trả về chuỗi “123456” bằng cách loại bỏ các ký tự không phải số. Sau đó, chuỗi kết quả này được gán cho biến strOutput và hiển thị trong một hộp thoại thông báo bằng cách sử dụng hàm MsgBox.

Lưu ý rằng hàm số RemoveNonNumeric chỉ xử lý các chuỗi chứa số dương hoặc âm, và không xử lý các số thập phân. Nếu chuỗi đầu vào không chứa số nào, hàm số sẽ trả về chuỗi rỗng.

Bước 3: Bạn có thể sử dụng hàm số RemoveNonNumeric trong các chương trình VBA khác nhau. Ví dụ, bạn có thể sử dụng nó để xử lý các giá trị nhập vào từ người dùng, để loại bỏ các ký tự không hợp lệ từ các chuỗi đọc từ tệp tin, hoặc để chuẩn hóa các giá trị trong các bảng dữ liệu của Excel.

Bước 4: Nếu bạn muốn chỉ loại bỏ các ký tự khác số từ một phần của chuỗi đầu vào, bạn có thể chỉnh sửa đoạn mã trong hàm số RemoveNonNumeric để bắt đầu từ vị trí mong muốn và kết thúc ở vị trí khác.

Ví dụ, nếu bạn muốn loại bỏ các ký tự không phải số từ vị trí thứ hai đến vị trí thứ năm của chuỗi đầu vào, bạn có thể sửa đoạn mã như sau:

Function RemoveNonNumeric(strInput As String) As String

Dim strOutput As String

Dim i As Long

For i = 2 To 5

If IsNumeric(Mid(strInput, i, 1)) Then

strOutput = strOutput & Mid(strInput, i, 1)

End If

Next i

RemoveNonNumeric = strOutput

End Function

Với đoạn mã này, hàm số RemoveNonNumeric sẽ loại bỏ các ký tự không phải số từ vị trí thứ hai đến vị trí thứ năm của chuỗi đầu vào.

Bước 5: Nếu bạn muốn loại bỏ các ký tự không phải số và thay thế chúng bằng một ký tự khác, bạn có thể sửa đổi đoạn mã trong hàm số RemoveNonNumeric để thêm tham số mới, cho phép bạn chỉ định ký tự muốn thay thế các ký tự không phải số. Ví dụ, nếu bạn muốn thay thế các ký tự không phải số bằng dấu gạch ngang (-), bạn có thể sửa đổi đoạn mã như sau:

Function RemoveNonNumeric(strInput As String, strReplaceChar As String) As String

Dim strOutput As String

Dim i As Long

For i = 1 To Len(strInput)

If IsNumeric(Mid(strInput, i, 1)) Then

strOutput = strOutput & Mid(strInput, i, 1)

Else

strOutput = strOutput & strReplaceChar

End If

Next i

RemoveNonNumeric = strOutput

End Function

Với đoạn mã này, bạn có thể sử dụng hàm số RemoveNonNumeric để loại bỏ các ký tự không phải số từ chuỗi đầu vào và thay thế chúng bằng dấu gạch ngang (-) bằng cách gọi hàm như sau:

Dim strInput As String

Dim strOutput As String

strInput = “1a2b3c4d5e”

strOutput = RemoveNonNumeric(strInput, “-“)

‘Kết quả: “1-2-3-4-5”

Bước 6: Cuối cùng, nếu bạn muốn loại bỏ các ký tự không phải số từ các ô trong một bảng tính Excel, bạn có thể sử dụng hàm số RemoveNonNumeric như một hàm tùy chỉnh trong Excel. Để làm điều này, bạn cần sử dụng trình biên tập VBA để chèn đoạn mã trong một mô-đun VBA và sau đó sử dụng công cụ Công thức trong Excel để gọi hàm số.

cách dùng hàm tự tạo trong VBA để bỏ chữ khỏi số

3. So sánh hiệu quả giữa việc làm bằng tay hoặc thực hiện cách dùng hàm tự tạo trong VBA để bỏ chữ khỏi số

  • Tăng hiệu quả và tiết kiệm thời gian.
  • Độ chính xác cao. 
  • Tính tái sử dụng.

Trung tâm sửa chữa điện lạnh – điện tử Limosa hy vọng rằng bài viết này đã giúp bạn hiểu rõ hơn về cách dùng hàm tự tạo trong VBA để bỏ chữ khỏi số. Nếu bạn cần hỗ trợ hoặc muốn biết thêm về các chức năng khác trong VBA, hãy gọi đến HOTLINE 1900 2276 của chúng tôi hoặc tìm kiếm trên các trang web học tập trực tuyến.

Limosa - Đơn vị sửa chữa hàng đầu Việt Nam
Limosa – Đơn vị sửa chữa hàng đầu Việt Nam
Đánh Giá
viber
messenger
zalo
hotline
icon-mess
Chat Facebook
(24/7)
icon-mess
Chat Zalo
(24/7)
icon-mess
Báo Giá
(24/7)
icon-mess
1900 2276
(24/7)