ExcelVba Tự động Tìm ô trống và điền dữ liệu theo Vlookup của bảng hiện tại
Hỏi: Tìm các ô trống trong cột B và điền giá trị từ cột A ở hàng tương ứng. Nếu không tìm thấy giá trị, ô đó sẽ được tô màu xanh dương.
Đáp:
Bạn có thể sử dụng VBA để thực hiện yêu cầu của bạn. Dưới đây là một đoạn mã VBA sẽ tìm các ô trống trong cột B và điền giá trị từ cột A ở hàng tương ứng. Nếu không tìm thấy giá trị, ô đó sẽ được tô màu xanh dương.
Sub FillBlankCells()
Dim ws As Worksheet
Dim rng As Range
Dim cell As Range
Dim searchValue As Variant
Dim foundValue As Range
' Đặt trang tính cần làm việc
Set ws = ThisWorkbook.Sheets("Sheet1") ' Thay "Sheet1" bằng tên trang tính của bạn
' Vùng dữ liệu từ A1:B1000
Set rng = ws.Range("A1:B1000")
' Duyệt qua từng ô trong cột B từ B1 đến B1000
For Each cell In ws.Range("B1:B1000")
' Kiểm tra ô có trống không
If IsEmpty(cell.Value) Then
' Lấy giá trị từ cột A ở cùng hàng
searchValue = cell.Offset(0, -1).Value
' Sử dụng hàm VLOOKUP để tìm giá trị trong cột B
Dim vlookupResult As Variant
vlookupResult = Application.VLookup(searchValue, ws.Range("A1:B1000"), 2, False)
' Kiểm tra kết quả của VLOOKUP
If Not IsError(vlookupResult) Then
' Nếu tìm thấy giá trị thì điền vào ô trống
cell.Value = vlookupResult
Else
' Nếu không tìm thấy giá trị thì tô màu xanh dương cho ô đó
cell.Interior.Color = RGB(0, 0, 255)
End If
End If
Next cell
End Sub
Để sử dụng đoạn mã này:
- Mở Excel.
- Nhấn
Alt + F11
để mở trình soạn thảo VBA. - Chọn
Insert > Module
để tạo một module mới. - Sao chép và dán đoạn mã trên vào module vừa tạo.
- Đóng trình soạn thảo VBA.
- Quay lại Excel, nhấn
Alt + F8
, chọnFillBlankCells
và nhấnRun
.
Đoạn mã này sẽ kiểm tra từng ô trong cột B. Nếu ô nào trống, nó sẽ tìm giá trị tương ứng trong cột A và điền vào ô trống đó. Nếu không tìm thấy giá trị tương ứng, ô đó sẽ được tô màu xanh dương.
Post a Comment