gộp dữ liệu nhiều sheet

Liên hệ QC

luankhanh1987

Thành viên mới
Tham gia
13/7/18
Bài viết
10
Được thích
0
Các anh cho e hỏi e có 2 file excel đính kèm xin các anh chỉ e dùng vba excel gộp dữ liệu từ nhiều sheet này qua 1 sheet data của file excel khác mà trong sheet data có cập nhật ngày mà file excel kia chỉ ghi ngày dưới sheet
 

File đính kèm

Code như sau:
Mã:
Sub CapNhatDL()
    Dim Wb As String, Ws As Worksheet, Rws As Long
    On Error GoTo EndSub
    Wb = Application.GetOpenFilename("Excel files (*.xls*), *.xlsx", , "Open file", , False)
    With Workbooks.Open(Wb)
        For Each Ws In .Sheets
            Rws = Ws.[B65000].End(xlUp).Row - 3 'So dong du lieu cua sheet Ws
            If Rws > 0 Then
                Ws.[B4:K4].Resize(Rws).Copy Sheet1.[C65000].End(xlUp).Offset(1) 'Copy du lieu qua file Data
                Sheet1.[B65000].End(xlUp).Offset(1).Resize(Rws) = DateValue(Replace(Ws.Name, ".", "/")) 'Dien ngay
            End If
        Next
        .Close False 'Dong file con
    End With
    Rws = Sheet1.[C65000].End(xlUp).Row - 3 'So dong du lieu trong file Data
    If Rws > 0 Then
        Sheet1.[A4].Resize(Rws) = [=ROW(1:10000)] 'Danh STT
        Sheet1.[A4:L4].Resize(Rws).Borders.LineStyle = 1 'Ke khung
    End If
EndSub:
End Sub
 

File đính kèm

Upvote 0
Code như sau:
Mã:
Sub CapNhatDL()
    Dim Wb As String, Ws As Worksheet, Rws As Long
    On Error GoTo EndSub
    Wb = Application.GetOpenFilename("Excel files (*.xls*), *.xlsx", , "Open file", , False)
    With Workbooks.Open(Wb)
        For Each Ws In .Sheets
            Rws = Ws.[B65000].End(xlUp).Row - 3 'So dong du lieu cua sheet Ws
            If Rws > 0 Then
                Ws.[B4:K4].Resize(Rws).Copy Sheet1.[C65000].End(xlUp).Offset(1) 'Copy du lieu qua file Data
                Sheet1.[B65000].End(xlUp).Offset(1).Resize(Rws) = DateValue(Replace(Ws.Name, ".", "/")) 'Dien ngay
            End If
        Next
        .Close False 'Dong file con
    End With
    Rws = Sheet1.[C65000].End(xlUp).Row - 3 'So dong du lieu trong file Data
    If Rws > 0 Then
        Sheet1.[A4].Resize(Rws) = [=ROW(1:10000)] 'Danh STT
        Sheet1.[A4:L4].Resize(Rws).Borders.LineStyle = 1 'Ke khung
    End If
EndSub:
End Sub
Điều gì sẽ xảy ra nếu ta lỡ tay bấm cập nhật DL lần 2, lần 3 nhỉ?
 
Upvote 0
Điều gì sẽ xảy ra nếu ta lỡ tay bấm cập nhật DL lần 2, lần 3 nhỉ?
Thông thường khi mình viết code để tổng hợp dữ liệu từ sheet khác hoặc file khác thì thường có câu lệnh xóa dữ liệu hiện có trước khi cập nhật (tất nhiên còn tùy thuộc vào việc cập nhật thêm hay lấy mới hoàn toàn). Vụ này dễ ẹc ấy mà.
 
Upvote 0
các anh cho e hỏi ngu chút e cũng kg rành lắm h muốn chạy làm sao bạn,mình bấm vô run nhưng kg chạy,với lại em muốn nó là nó cập nhật dữ liệu liên tục mấy a vì mấy sếp muốn hỏi ngày nào phải có ngày đó,với lại e muốn bỏ 5 dòng đầu của sheet 1 sheet2 sheet 3 sheet4 khi nhập vào data
 
Lần chỉnh sửa cuối:
Upvote 0
Các anh cho em hỏi e muốn chép đoạn code đó vô file khác làm sao để chạy được các an,tại e chép vô developer rùi nhưng kg thể nào chạy được mà e làm file data ở trên thì chạy mong các anh chị giúp dùm em
 
Lần chỉnh sửa cuối:
Upvote 0
Code như sau:
Mã:
Sub CapNhatDL()
    Dim Wb As String, Ws As Worksheet, Rws As Long
    On Error GoTo EndSub
    Wb = Application.GetOpenFilename("Excel files (*.xls*), *.xlsx", , "Open file", , False)
    With Workbooks.Open(Wb)
        For Each Ws In .Sheets
            Rws = Ws.[B65000].End(xlUp).Row - 3 'So dong du lieu cua sheet Ws
            If Rws > 0 Then
                Ws.[B4:K4].Resize(Rws).Copy Sheet1.[C65000].End(xlUp).Offset(1) 'Copy du lieu qua file Data
                Sheet1.[B65000].End(xlUp).Offset(1).Resize(Rws) = DateValue(Replace(Ws.Name, ".", "/")) 'Dien ngay
            End If
        Next
        .Close False 'Dong file con
    End With
    Rws = Sheet1.[C65000].End(xlUp).Row - 3 'So dong du lieu trong file Data
    If Rws > 0 Then
        Sheet1.[A4].Resize(Rws) = [=ROW(1:10000)] 'Danh STT
        Sheet1.[A4:L4].Resize(Rws).Borders.LineStyle = 1 'Ke khung
    End If
EndSub:
End Sub
anh nếu em copy hết dữ liệu sheet từ file BáoCaoKhotp1 sang báo cáo khotp T03.183 được kg anh mà em muốn cập nhật liên tục luôn,chứ mỗi lần cập nhật em kg có dữ liệu cũ báo anh
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom