Hoàng Văn Tài
Hoàng Văn Tài
Thảo luận 3 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 56 lượt xem

về lỗi này Sub tonghop_dulieu2()With ApplicationFileDig(msoFileDigFolderPicker) AllowMultiSelect

thầy xem giúp e về lỗi này với ạ

Sub tonghop_dulieu2()

With Application.FileDialog(msoFileDialogFolderPicker)

    .AllowMultiSelect = False

    If .Show = -1 Then

        Dim duongdan As String

        Dim tenfile As String

            duongdan = .SelectedItems(1) & "\"

            tenfile = "*BangLuong*.xls*"

        Dim file_duoc_mo As String

            file_duoc_mo = Dir(duongdan & tenfile)

            

        Do While file_duoc_mo <> ""

        Dim wb1 As Workbook, wb2 As Workbook

            Set wb1 = ThisWorkbook

            Set wb2 = Workbooks.Open(Filename:=duongdan & file_duoc_mo)

        

        Dim lr1 As Long

            lr1 = wb1.Sheets(2).Range("A" & Rows.Count).End(xlUp).Row

        Dim lr2 As Long

            lr2 = wb2.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row

        Dim fr2 As Long

            fr2 = 8

        Dim kc As Long

            kc = lr2 - fr2 + 1

            

        Dim dk As Long

            dk = Application.WorksheetFunction.CountIfs(wb1.Sheets(2).Range("A6:A" & lr1), wb2.Sheets(1).Range("E2"), wb1.Sheets(2).Range("C6:C" & lr1), wb2.Sheets(1).Range("G2"))

            

            If dk >= 1 Then

                MsgBox "Du lieu da bi trung"

                Exit Sub

            Else

                wb1.Sheets(2).Range("A" & lr1 + 1 & ":BM" & lr1 + kc).Value = _

                wb2.Sheets(1).Range("A" & fr2 & ":BM" & lr2).Value 

                wb2.Close savechanges:=False

            End If

            'Xac dinh lai file khac duoc mo

            file_duoc_mo = Dir

        Loop

    End If

End With

End Sub

Thảo luận 3 câu trả lời
Lượt xem 56 lượt xem
Vỗ tay vỗ tay
Hoàng Văn Tài 15:01 - Jan 19, 2021

Bạn chú ý ở đoạn code này:

tenfile = "*BangLuong*.xls*"

có ý nghĩa là lấy các file có tên BangLuong. Nhưng có thể trong thư mục của bạn không có file nào tên như vậy.

Bạn có thể thay tên file trong đoạn code này là:

tenfile = "*.xls*"
rồi thử chạy lại code xem sao

Vỗ tay vỗ tay
Hoàng Văn Tài 15:01 - Jan 19, 2021

e chọn đúng folder tải từ bài giảng về đây ạ, có đủ file bảng lương các tháng bên trong mà :))

nhưng e vừa tìm ra là do đường dẫn có những folder mẹ bên ngoài đang để tên tiếng việt có dấu nên code không chạy được

Vỗ tay vỗ tay
Hoàng Văn Tài 16:01 - Jan 19, 2021

Đúng rồi, việc sử dụng tên folder bằng tiếng việt dễ bị sai khi dùng VBA.

Vỗ tay vỗ tay
Câu hỏi liên quan
@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội