Code nhập liệu từ sheet bị lỗi, cần các bác sửa giúp ạ

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Hiếu Nguyễn AAA

Thành viên mới
Tham gia
31/5/17
Bài viết
3
Được thích
1
Mã:
Sub NhapDuLieuTheoThangBIEU03()
    Dim wsBIEU03 As Worksheet
    Dim wsThang As Worksheet
    Dim thang As String
    Dim row As Range
    Dim timThay As Range
    Dim timKiem As String
    Dim colIndex As Integer
    
    ' Ð?t bi?n cho sheet BIEU03
    Set wsBIEU03 = ThisWorkbook.Sheets("BIEU03")
    
    ' L?y giá tr? tháng t? ô O3
    thang = wsBIEU03.Range("O3").Value
    
    ' Ki?m tra n?u tháng không du?c nh?p
    If thang = "" Then
        MsgBox "Vui lòng nh?p tháng vào ô O3", vbExclamation
        Exit Sub
    End If
    
    ' Ð?t bi?n cho sheet tuong ?ng v?i tháng
    On Error Resume Next
    Set wsThang = ThisWorkbook.Sheets(thang)
    On Error GoTo 0
    
    ' Ki?m tra n?u sheet tháng không t?n t?i
    If wsThang Is Nothing Then
        MsgBox "Không tìm th?y sheet cho tháng " & thang, vbExclamation
        Exit Sub
    End If
    
    ' Xác d?nh c?t c?n tìm ki?m trong sheet tháng
    colIndex = 2 ' C?t th? 2 trong ph?m vi tìm ki?m
    
    ' Vòng l?p qua các ô t? B7 d?n B87 trên sheet BIEU03
    For Each row In wsBIEU03.Range("B7:B87").Cells
        timKiem = row.Value
        
        ' Tìm d? li?u tuong ?ng ? sheet tháng
        Set timThay = Application.WorksheetFunction.VLookup(timKiem, wsThang.Range("C:O"), colIndex, False)
        
        ' N?u tìm th?y d? li?u
        If Not IsError(timThay) Then
            ' Nh?p d? li?u vào sheet BIEU03 theo v? trí tuong ?ng
            wsBIEU03.Cells(row.row, 3).Value = timThay ' C?t C tuong ?ng v?i c?t 3
        End If
    Next row
    
    MsgBox "Hoàn thành nh?p d? li?u", vbInformation
End Sub
em viết 1 đoạn code để nhập số tháng vào sheet Bieu03 thì sẽ tự lấy số liệu ở các sheet tương ứng, nhưng bị lỗi, nhờ các thầy sửa dùm em với ạ. em xin chân thành cảm ơn.

Sub NhapDuLieuTheoThangBIEU03()
Dim wsBIEU03 As Worksheet
Dim wsThang As Worksheet
Dim thang As String
Dim row As Range
Dim timThay As Range
Dim timKiem As String
Dim colIndex As Integer

' Ð?t bi?n cho sheet BIEU03
Set wsBIEU03 = ThisWorkbook.Sheets("BIEU03")

' L?y giá tr? tháng t? ô O3
thang = wsBIEU03.Range("O3").Value

' Ki?m tra n?u tháng không du?c nh?p
If thang = "" Then
MsgBox "Vui lòng nh?p tháng vào ô O3", vbExclamation
Exit Sub
End If

' Ð?t bi?n cho sheet tuong ?ng v?i tháng
On Error Resume Next
Set wsThang = ThisWorkbook.Sheets(thang)
On Error GoTo 0

' Ki?m tra n?u sheet tháng không t?n t?i
If wsThang Is Nothing Then
MsgBox "Không tìm th?y sheet cho tháng " & thang, vbExclamation
Exit Sub
End If

' Xác d?nh c?t c?n tìm ki?m trong sheet tháng
colIndex = 2 ' C?t th? 2 trong ph?m vi tìm ki?m

' Vòng l?p qua các ô t? B7 d?n B87 trên sheet BIEU03
For Each row In wsBIEU03.Range("B7:B87").Cells
timKiem = row.Value

' Tìm d? li?u tuong ?ng ? sheet tháng
Set timThay = Application.WorksheetFunction.VLookup(timKiem, wsThang.Range("C:O"), colIndex, False)

' N?u tìm th?y d? li?u
If Not IsError(timThay) Then
' Nh?p d? li?u vào sheet BIEU03 theo v? trí tuong ?ng
wsBIEU03.Cells(row.row, 3).Value = timThay ' C?t C tuong ?ng v?i c?t 3
End If
Next row

MsgBox "Hoàn thành nh?p d? li?u", vbInformation
End Sub
 

File đính kèm

  • Test.xlsm
    258.5 KB · Đọc: 1
Lần chỉnh sửa cuối:
Bạn đưa code vào thẻ code cho nó gọn và dễ nhìn.
Còn lỗi thì cũng nên nói lỗi để biết mà giúp chứ. Quang lên thế kia là làm khó người hỗ trợ rồi
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom