Giúp đỡ Code lấy dữ liệu từ file khác vào File tổng hợp (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

alonelove

Thành viên chính thức
Tham gia
7/9/10
Bài viết
52
Được thích
2
Chào các Anh/Chị:

Mình hay tổng hợp số liệu cân đối cảu nhiều đơn vị, thường copy patch thủ công nay muốn có file tự tổng hợp cho nhanh nhưng search nghiên cứu đủ thứ vẫn báo lỗi tùm lum. Muốn nhờ các Anh/Chị giúp đỡ:

Mình có 1 file tổng hợp số liệu muốn có "Nút nhấn" tự load số liệu vào theo yêu cầu gồm (mình lấy 3 đơn vị và mỗi đơn vị có 3 lần báo cáo cho đơn giản).
- Nút lấy số liệu 03 kỳ của cùng một đơn vị: Ví dụ tháng 3, 4 và 5/2017

- Nút lấy số liệu cùng kỳ của tất cả các đơn vị: Ví dụ lấy tháng 3/2017 của đơn vị: ABC, DEF và GHI

MÌNH CŨNG ĐÃ MÀY MÒ HẾT SỨC NHƯNG CÓ LẼ YẾU VỀ TIN HỌC NÊN CHỊU THUA, ĐÍNH KÈM CÁC FILE LÊN NHỜ ANH CHỊ GIÚP ĐỠ Ạ.
 

File đính kèm

Số liệu của bạn lên tới ngàn tỷ thì hà cớ gì phải dùng Excel. Yêu cầu xếp mua phần mềm.
 
Upvote 0
Thế bạn có lường đến khả năng vô tình bạn (hoặc ai không biết) kích chuột để copy thêm lần nữa thì sao
 
Upvote 0
Thế bạn có lường đến khả năng vô tình bạn (hoặc ai không biết) kích chuột để copy thêm lần nữa thì sao
Cảm ơn bạn quan tâm để mình nói rõ thêm như này: Kết cấu số liệu sẽ y chang vậy, còn số trong đó là số mình copy vào. Ý mình là nhờ các Anh/Chị giúp đỡ về kết cấu thôi, số liệu như thế nào cũng được ạ
 
Upvote 0
Chào các Anh/Chị:

Mình hay tổng hợp số liệu cân đối cảu nhiều đơn vị, thường copy patch thủ công nay muốn có file tự tổng hợp cho nhanh nhưng search nghiên cứu đủ thứ vẫn báo lỗi tùm lum. Muốn nhờ các Anh/Chị giúp đỡ:

Mình có 1 file tổng hợp số liệu muốn có "Nút nhấn" tự load số liệu vào theo yêu cầu gồm (mình lấy 3 đơn vị và mỗi đơn vị có 3 lần báo cáo cho đơn giản).
- Nút lấy số liệu 03 kỳ của cùng một đơn vị: Ví dụ tháng 3, 4 và 5/2017

- Nút lấy số liệu cùng kỳ của tất cả các đơn vị: Ví dụ lấy tháng 3/2017 của đơn vị: ABC, DEF và GHI

MÌNH CŨNG ĐÃ MÀY MÒ HẾT SỨC NHƯNG CÓ LẼ YẾU VỀ TIN HỌC NÊN CHỊU THUA, ĐÍNH KÈM CÁC FILE LÊN NHỜ ANH CHỊ GIÚP ĐỠ Ạ.
Còn mình không hiểu sao, đã từng thấy code loại thực hiện hành động này trên 5 lần.
- Chỉ cần sửa đổi thư mục chọn và đổi địa chỉ theo kết cấu bảng tính là ổn ngay.
 
Upvote 0
Còn mình không hiểu sao, đã từng thấy code loại thực hiện hành động này trên 5 lần.
- Chỉ cần sửa đổi thư mục chọn và đổi địa chỉ theo kết cấu bảng tính là ổn ngay.
Mình cũng nghiên cứu các cách trên 4 rum này làm thử chạy không được. Thử thêm vài lần nữa nên đành liều đưa lên nhờ Anh/Chị ai biết và có thời gian thì giúp đỡ. hi hi
 
Upvote 0
Tôi thấy nên thay dòng
sFile = ThisWorkbook.Path & "C:\SOLIEU\ABC56101001\G00014-56101001-01201001-201703-BI-M-01.xlsx"

bằng dòng
sFile = "C:\SOLIEU\ABC56101001\G00014-56101001-01201001-201703-BI-M-01.xlsx"

để tránh lỗi ở dòng
If Len(Dir(sFile)) Then
vì hàm Dir(sFile) bị lỗi.
 
Upvote 0
Sau thời gian dài nghiên cứu lại em thay đổi ý tưởng và copy được một số Code trên mạng về.

Thành công: là đã copy được dữ liệu từng sheet vào file khác tuy nhiên chưa được như ý mong muốn đó là:
1. Code copy toàn bộ dữ liệu chứ không phải là vùng dư liệu mong muốn
2. Dữ liệu copy nối tiếp nhau và không theo thứ tự thời gian (Thời gian tại các sheet có dạng 20170101 tại A3)
3. Không tự động xóa dữ liệu cũ khi chạy lại code

Mong muốn các Anh/Chị sửa hoặc thêm code giùm với điều kiện:
1. Copy vùng dữ liệu từng sheet vào file Tonghop theo thời gian tăng dần (tháng 201701, 201702 và 201703).
2. Trước khi copy dữ liệu thì tự động xóa hết dữ liệu đã có sẵn tại sheet1 và sheet 2 của file Tonghop

Em đính kèm file mong được giúp đỡ ạ./.

Sub GopFileExcelnoibang()
Dim FilesToOpen
Dim x As Integer
Dim wb As Workbook

On Error GoTo ErrHandler
Application.ScreenUpdating = False

FilesToOpen = Application.GetOpenFilename _
(FileFilter:="Microsoft Excel Files (*.xlsx), *.xlsx", MultiSelect:=True, Title:="Files to Merge")

If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "No Files were selected"
GoTo ExitHandler
End If

x = 1
While x <= UBound(FilesToOpen)
Set wb = Workbooks.Open(Filename:=FilesToOpen(x))

If x = 1 Then
wb.Sheets(1).UsedRange.Copy ThisWorkbook.Sheets(1).Range("A1")
Else
lr = ThisWorkbook.Sheets(1).UsedRange.Rows.Count
wb.Sheets(1).UsedRange.Offset(1).Copy ThisWorkbook.Sheets(1).Range("A" & lr + 1)
End If

wb.Close False
x = x + 1
Wend

ExitHandler:
Application.ScreenUpdating = True
Set wb = Nothing
Exit Sub

ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
 

File đính kèm

Upvote 0
Nhận được tin nhắn của bạn và bài này tôi cũng đã đọc rồi, nhưng do bận quá tôi chưa thể giúp được.

Bạn có thể chờ các thành viên khác xem và giúp.
 
Upvote 0
Web KT

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

Back
Top Bottom