Em chào Anh/Chị ạ:
Em có bài toán cộng dồn dữ liệu từ nhiều file excel có cấu trúc giống nhau sang file Tổng (File Total.xlsm). Như code dưới đây thì chỉ chạy được đối với các file nguồn có giá trị làm tròn, tuy nhiên nếu có giá trị sau dấu phẩy thì không cộng đúng được ạ.
Như ví dụ em đính kèm 2 file nguồn có giá trị tại J47: K47 có dấu ngăn cách thập phân là dấu phẩy ",", thực tế thì rất nhiều Cells có ngăn cách thập phân là dấu phẩy nên cộng toàn sai số. Phiền Anh/Chị xem giùm em code hoặc có phương án code nào hay hơn thì giúp em với ạ.
Em xin cảm ơn./.
Em có bài toán cộng dồn dữ liệu từ nhiều file excel có cấu trúc giống nhau sang file Tổng (File Total.xlsm). Như code dưới đây thì chỉ chạy được đối với các file nguồn có giá trị làm tròn, tuy nhiên nếu có giá trị sau dấu phẩy thì không cộng đúng được ạ.
Như ví dụ em đính kèm 2 file nguồn có giá trị tại J47: K47 có dấu ngăn cách thập phân là dấu phẩy ",", thực tế thì rất nhiều Cells có ngăn cách thập phân là dấu phẩy nên cộng toàn sai số. Phiền Anh/Chị xem giùm em code hoặc có phương án code nào hay hơn thì giúp em với ạ.
Em xin cảm ơn./.
Mã:
Sub total_i38()
Dim FileNameXls As Variant, i As Long, j As Long, wb As Workbook
Dim baseBook As Workbook, filenumber As Long, strttme As Single: strttme = Timer
Set baseBook = ThisWorkbook
baseBook.Sheets("PL01").Range("D4:M31", "J32:K32").ClearContents
FileNameXls = Application.GetOpenFilename(filefilter:="A0304,*.xl*", MultiSelect:=True)
If Not IsArray(FileNameXls) Then Exit Sub
Application.ScreenUpdating = False
For i = LBound(FileNameXls) To UBound(FileNameXls)
j = baseBook.Sheets("main").Range("A4").End(xlUp).Row
Set wb = Workbooks.Open(FileNameXls(i))
wb.Sheets("A03041").Range("D19:M46", "J47:K47").Copy
baseBook.Sheets("PL01").Range("d4:M31", "J32:K32").PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd, SkipBlanks:=True, Transpose:=False
Application.CutCopyMode = False
wb.Close SaveChanges:=False
baseBook.Sheets("main").Range("A" & j + 1).Value = FileNameXls(i)
Next i
Application.ScreenUpdating = True
filenumber = UBound(FileNameXls)
baseBook.Sheets("main").Select
MsgBox "Da tong hop: " & filenumber & " files - Tong thoi gian: " & Format(Round(Timer - strttme, 3), "0.00") & " giay"
End Sub