Menu

App script quản lý rủi ro cho cá nhân & doanh nghiệp với báo cáo chuẩn định dạng biểu đồ

Tự động hóa việc làm sạch dữ liệu hàng loạt với VBA

Hoạt Ngọc Định 10/03/2026 12:00 257 lượt xem 2 trả lời

Chào các bạn trong diễn đàn Sheet & Excel,

Dạo này mình làm với một file excel có dữ liệu khá lộn xộn, mỗi lần nhận về là y như rằng phải ngồi tút tát lại từ đầu đến cuối. Nào là khoảng trắng thừa, ký tự lạ, định dạng lung tung... làm thủ công riết cũng nản.

Mình có tìm hiểu qua Power Query nhưng với yêu cầu làm sạch nhiều loại lỗi khác nhau và áp dụng cho nhiều file cùng lúc thì thấy hơi mất thời gian thiết lập.

Vậy nên, mình đã thử viết một đoạn code VBA nhỏ để tự động hóa việc này. Cơ bản là mình gom các thao tác hay làm nhất vào một macro, ví dụ:

  • Xóa khoảng trắng thừa ở đầu và cuối chuỗi: Dùng hàm TRIM()
  • Chuyển đổi chữ thường/chữ hoa: Dùng LOWER() hoặc UPPER()
  • Loại bỏ ký tự không mong muốn: Dùng Replace()
  • Chuẩn hóa định dạng ngày tháng: Dùng Format()

Ví dụ, để xóa khoảng trắng thừa cho một cột A, mình dùng đoạn code:

Sub XoaKhoangTrangDuThua()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.ActiveSheet
    
    Dim rng As Range
    Dim cell As Range
    
    On Error Resume Next
    Set rng = ws.UsedRange.Columns("A") ' Áp dụng cho cột A
    
    For Each cell In rng
        If Not IsEmpty(cell.Value) Then
            cell.Value = Application.WorksheetFunction.Trim(cell.Value)
        End If
    Next cell
    On Error GoTo 0
    MsgBox "Đã xóa khoảng trắng thừa!", vbInformation
End Sub

Sau khi có macro này, mỗi lần nhận file mới, mình chỉ cần chạy nó là xong phần việc cơ bản. Tiết kiệm được khối thời gian và đỡ mệt mỏi hơn hẳn.

Các bạn có cao kiến gì hay hoặc có cách nào khác để xử lý dữ liệu 'bẩn' hiệu quả hơn không? Chia sẻ cho mình và mọi người cùng học hỏi nhé!

1

Chào bạn,

Mình rất hiểu cảm giác của bạn khi phải xử lý đống dữ liệu lộn xộn thủ công. Dùng VBA để tự động hóa việc làm sạch đúng là một giải pháp hiệu quả, đặc biệt khi cần áp dụng cho nhiều file hoặc nhiều loại lỗi khác nhau.

Bạn có thể chia sẻ thêm về đoạn code VBA bạn đã viết không? Mình tò mò muốn biết bạn đã xử lý những loại lỗi nào và cách bạn áp dụng cho nhiều file cùng lúc như thế nào. Có thể chúng ta sẽ có thêm những ý tưởng hay ho cho nhau đấy!

5

Hay quá bạn ơi, mình cũng đang đau đầu với mấy file dữ liệu "khó chiều" đây. Dùng VBA để tự động hóa việc làm sạch đúng là một ý tưởng tuyệt vời, nhất là khi bạn nói nó xử lý được nhiều loại lỗi và áp dụng cho nhiều file.

Bạn có thể chia sẻ cụ thể hơn về đoạn code bạn viết không? Ví dụ như bạn xử lý các khoảng trắng thừa hay ký tự lạ bằng hàm gì trong VBA, và làm sao để áp dụng cho nhiều file cùng lúc vậy? Mình đang muốn học hỏi thêm để áp dụng vào công việc của mình.

4

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký