ý mình là nối các file đó lạiNguyễn Hương Thơm đã viết:ý có phải bạn nối các file đó lại hay cộng giá trị của từng file?
chính xác là mình có 380 file, mở từng file và copy thì quá lâu và mình sợ bị sót.salam đã viết:Bạn chịu khó mở các file ra copy rồi dán nhé nhớ là excel chỉ có 65536 dòng thôi.
cấu trúc giống nhau, mỗi file chỉ khoảng 15dòng, chỉ là dữ liệu, không hề có công thứcsalam đã viết:Cấu trúc dữ liệu của các file đó có giống nhau không và độ dài của nó (Max dòng) có lớn không bạn.
Sub test()
Application.ScreenUpdating = False
CFILE = ActiveWorkbook.Name
SNAME = "Sheet1" 'Tên sheet
p = 1
F = Dir("K:\acc.duc\Duc\D\*.xls") 'Đường dẫn thư mục chứ file
Do While Len(F) > 0
Workbooks.Open ("K:\acc.duc\Duc\D\" & F)
For Each ws In ActiveWorkbook.Worksheets
x = Cells(1, 1)
Windows(CFILE).Activate
Sheets(SNAME).Select
Cells(p, 1) = x
p = p + 1
Windows(F).Activate
Next ws
ActiveWorkbook.Close SaveChanges = True
F = Dir()
Loop
Application.ScreenUpdating = True
End Sub
Sub Copyfile()
Application.ScreenUpdating = False
CFILE = ActiveWorkbook.Name
SNAME = "Sheet1" 'Tên sheet cần copy
F = Dir("K:\acc.duc\Duc\D\*.xls") ' Đường dẫn đến thư mục chứa các file *.xls
Do While Len(F) > 0
Workbooks.Open ("K:\acc.duc\Duc\D\" & F) ' Đường dẫn đến thư mục chứa các file *.xls
For Each ws In ActiveWorkbook.Worksheets
Sheets(SNAME).Select
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Windows(CFILE).Activate
ActiveSheet.Select
ActiveSheet.Paste
'Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Windows(F).Activate
ActiveWorkbook.Close SaveChanges = True
Next ws
F = Dir()
Loop
Application.ScreenUpdating = True
End Sub