Copy từ Sheet nhỏ sang Sheet tổng

Liên hệ QC

123456it

Thành viên chính thức
Tham gia
5/10/08
Bài viết
80
Được thích
7
Em có 1 file Excel (Số liệu quan trắc...)gồm các Sheet theo ngày : ngày 1, 2, ..... chạy đến 29,30,31 tùy tháng
Em muốn copy từ B19 đến đến P42 sang Sheet tổng kia(Form_KTTV...)
Sheet tổng kia là tổng hợp những Sheet con trong file nhỏ cũng đc tính theo ngày. Copy luôn vào Cột C3 đến cột Q62.
Các cột là giống nhau chỉ copy paste thôi ạ
Các bác nào xử lý giúp em ạ
Đội ơn các bác
 

File đính kèm

  • FORM_KTTV_NhoQue1_072022.xlsx
    56.4 KB · Đọc: 9
  • Số liệu quan trắc tháng 07.2022 - Copy.xlsx
    574.8 KB · Đọc: 9
Em có 1 file Excel (Số liệu quan trắc...)gồm các Sheet theo ngày : ngày 1, 2, ..... chạy đến 29,30,31 tùy tháng
Em muốn copy từ B19 đến đến P42 sang Sheet tổng kia(Form_KTTV...)
Sheet tổng kia là tổng hợp những Sheet con trong file nhỏ cũng đc tính theo ngày. Copy luôn vào Cột C3 đến cột Q62.
Các cột là giống nhau chỉ copy paste thôi ạ
Các bác nào xử lý giúp em ạ
Đội ơn các bác
Sao không để trong 1 File mà lại là 2 File.
 
Upvote 0
Nhập chung sheet data vào file chính rồi chạy code này nhé:
PHP:
Option Explicit
Sub add()
Dim ws As Worksheet, lcell As Range
Sheets("Data").Range("C3:Q746").ClearContents ' xoa du lieu cu tren sheet data
For Each ws In Sheets
    Set lcell = Sheets("Data").Cells(Rows.Count, "C").End(xlUp).Offset(1, 0) ' xac dinh o dau tien chua co du lieu cua cot C sheet data
    If ws.Name <> "Data" And IsNumeric(ws.Name) Then
        ws.Range("B19:P42").Copy lcell
    End If
Next
End Sub
 

File đính kèm

  • Số liệu quan trắc tháng 07.2022.xlsm
    607.4 KB · Đọc: 11
Upvote 0
Nhập chung sheet data vào file chính rồi chạy code này nhé:
PHP:
Option Explicit
Sub add()
Dim ws As Worksheet, lcell As Range
Sheets("Data").Range("C3:Q746").ClearContents ' xoa du lieu cu tren sheet data
For Each ws In Sheets
    Set lcell = Sheets("Data").Cells(Rows.Count, "C").End(xlUp).Offset(1, 0) ' xac dinh o dau tien chua co du lieu cua cot C sheet data
    If ws.Name <> "Data" And IsNumeric(ws.Name) Then
        ws.Range("B19:P42").Copy lcell
    End If
Next
End Sub
Nếu nó sai cột thì e thay tọa độ cột vào nhưng nó cứ open..ấn mãi đến mười mấy lần bác ạ :(
Bài đã được tự động gộp:

Sao không để trong 1 File mà lại là 2 File.
Dạ... 1 file cũng dc ạ.. bác có cách nào xử lý toàn vẹn ko ạ. Cám ơn bác trước
 

File đính kèm

  • Bảng số liệu quan trắc 02-2021.xlsx
    213.3 KB · Đọc: 1
  • Bảng số liệu quan trắc 03-2021.xlsx
    437.3 KB · Đọc: 1
Upvote 0
Nếu nó sai cột thì e thay tọa độ cột vào nhưng nó cứ open..ấn mãi đến mười mấy lần bác ạ :(
Bài đã được tự động gộp:


Dạ... 1 file cũng dc ạ.. bác có cách nào xử lý toàn vẹn ko ạ. Cám ơn bác trước
Bạn kiểm tra kết quả xem đúng không nhé!
Nhấn update, hộp thoại mở ra bạn chọn tới file [số liệu quan...] ở #1 ha!
PHP:
Option Explicit
Sub Get_Data()
    Dim Fso As Object, Item, Wb As Workbook, Lr&, Ws As Worksheet
    Dim Arr(), Res(1 To 100000, 1 To 16), i&, j&, k&
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    On Error Resume Next
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = True
        .Filters.Add "Microsoft Excel File", "*.xl*", 1
        If Not .Show Then Exit Sub
            For Each Item In .SelectedItems
                Set Wb = Workbooks.Open(Item)
                For Each Ws In Worksheets
                    With Ws
                        Arr = .Range("A19:P42").Value
                        For i = 1 To UBound(Arr)
                            k = k + 1
                            For j = 1 To 16
                                Res(k, j) = Arr(i, j)
                            Next j
                        Next i
                    End With
                Next Ws
                Wb.Close False
            Next
        End With
    If k Then
        With Sheets("Data")
            .Range("C3:Q100000").ClearContents
            .Range("C3").Resize(k, 16).Value = Res
            .Range("C3").CurrentRegion.Borders.LineStyle = 1
        End With
    End If
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    MsgBox "Hoan Thanh"
    Set Fso = Nothing
End Sub
 

File đính kèm

  • FORM_KTTV_NhoQue1_072022.xlsb
    42.5 KB · Đọc: 12
Upvote 0
Bạn kiểm tra kết quả xem đúng không nhé!
Nhấn update, hộp thoại mở ra bạn chọn tới file [số liệu quan...] ở #1 ha!
PHP:
Option Explicit
Sub Get_Data()
    Dim Fso As Object, Item, Wb As Workbook, Lr&, Ws As Worksheet
    Dim Arr(), Res(1 To 100000, 1 To 16), i&, j&, k&
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    On Error Resume Next
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = True
        .Filters.Add "Microsoft Excel File", "*.xl*", 1
        If Not .Show Then Exit Sub
            For Each Item In .SelectedItems
                Set Wb = Workbooks.Open(Item)
                For Each Ws In Worksheets
                    With Ws
                        Arr = .Range("A19:P42").Value
                        For i = 1 To UBound(Arr)
                            k = k + 1
                            For j = 1 To 16
                                Res(k, j) = Arr(i, j)
                            Next j
                        Next i
                    End With
                Next Ws
                Wb.Close False
            Next
        End With
    If k Then
        With Sheets("Data")
            .Range("C3:Q100000").ClearContents
            .Range("C3").Resize(k, 16).Value = Res
            .Range("C3").CurrentRegion.Borders.LineStyle = 1
        End With
    End If
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    MsgBox "Hoan Thanh"
    Set Fso = Nothing
End Sub
Máy e cứ báo thế này mà e dùng mọi cách ko sửa dc ạ
 

File đính kèm

  • 2.png
    2.png
    180.1 KB · Đọc: 6
Upvote 0
Bạn kiểm tra kết quả xem đúng không nhé!
Nhấn update, hộp thoại mở ra bạn chọn tới file [số liệu quan...] ở #1 ha!
PHP:
Option Explicit
Sub Get_Data()
    Dim Fso As Object, Item, Wb As Workbook, Lr&, Ws As Worksheet
    Dim Arr(), Res(1 To 100000, 1 To 16), i&, j&, k&
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    On Error Resume Next
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = True
        .Filters.Add "Microsoft Excel File", "*.xl*", 1
        If Not .Show Then Exit Sub
            For Each Item In .SelectedItems
                Set Wb = Workbooks.Open(Item)
                For Each Ws In Worksheets
                    With Ws
                        Arr = .Range("A19:P42").Value
                        For i = 1 To UBound(Arr)
                            k = k + 1
                            For j = 1 To 16
                                Res(k, j) = Arr(i, j)
                            Next j
                        Next i
                    End With
                Next Ws
                Wb.Close False
            Next
        End With
    If k Then
        With Sheets("Data")
            .Range("C3:Q100000").ClearContents
            .Range("C3").Resize(k, 16).Value = Res
            .Range("C3").CurrentRegion.Borders.LineStyle = 1
        End With
    End If
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    MsgBox "Hoan Thanh"
    Set Fso = Nothing
End Sub
ko đúng bác ạ.. dữ liệu nó nhảy loạn lên
 
Upvote 0
Bạn có dùng file có code (mình viết) và lấy dữ liệu ở file #1 chứ?
Có thể đính kèm cả 2 file để mình xem sai ở đâu không?
FIle tháng 8 là file upload ạ
E lấy file mẫu của bác và em chọn update, chọn file tháng 7 hoặc tháng 8 có những số liệu ko bít từ đâu vào ạ..
Cám ơn bác trước
 

File đính kèm

  • Bảng số liệu quan trắc 08-2021.xlsx
    237.9 KB · Đọc: 1
  • FORM_KTTV_NhoQue1_072022 (4).xlsb
    33.1 KB · Đọc: 1
  • Bảng số liệu quan trắc 07-2021.xlsx
    251.5 KB · Đọc: 1
Upvote 0
FIle tháng 8 là file upload ạ
E lấy file mẫu của bác và em chọn update, chọn file tháng 7 hoặc tháng 8 có những số liệu ko bít từ đâu vào ạ..
Cám ơn bác trước
Do file bạn gửi ở #1 khác với file mới nên kết quả sẽ trả sai.
file đính kèm phía dưới bạn chạy code ở file [FORM_KTTV_NhoQue1_072022 (4)]
Sau đó chọn tới các file muốn tổng hợp
- [ Bảng số liệu quan trắc 07-2021]
- [Bảng số liệu quan trắc 08-2021]
Rồi kiểm tra kết quả ha!
 

File đính kèm

  • FORM_KTTV_NhoQue1_072022 (4).xlsb
    33.4 KB · Đọc: 4
  • Bảng số liệu quan trắc 07-2021.xlsx
    251.5 KB · Đọc: 1
  • Bảng số liệu quan trắc 08-2021.xlsx
    237.9 KB · Đọc: 1
Upvote 0
Nhập chung sheet data vào file chính rồi chạy code này nhé:
PHP:
Option Explicit
Sub add()
. . . . . . 
End Sub
(1) Chú mày chưa có lệnh màn hình không được rung lắc!
(2) Chắt ăn hơn là chép theo ngày bằng cách nào đó; Tuy tăng sự dài dòng trong 'Code' nhưng sẽ ngon giấc khi xuống ca!
(3) Chúc chú mày vui suốt ngày!
 
Upvote 0
Web KT

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

Back
Top Bottom