Hỗ trợ tách một dòng thành một file excel

Liên hệ QC

Tình nghĩa giang hồ

Thanh sơn bất cải, lục thủy trường lưu
Tham gia
29/9/20
Bài viết
330
Được thích
429
Chào anh em GPE, mình có một bài tập tách mỗi dòng thành một file excel.
Bài này mình thấy cũng thú vị nên gửi anh em xem hỗ trợ giúp.
Một dòng thành một file excel, tức là 10 ngàn dòng thành 10 ngàn file.
Nhờ anh em hỗ trợ giúp.
Đa tạ anh em.
Bài đã được tự động gộp:

À cho mình nói thêm mình cũng có thử code tách thử thì cũng tách được, nhưng mà mỗi lần dùng code này là mình phải đi đâu đó uống cafe cả buổi, rồi khi về mới thấy được kết quả. (Tức là nó không chậm, mà phải gọi là quá chậm). Nên mình mong muốn về tốc độ một tí. Cảm ơn anh em.

Sub tach_file_thanh_nhieu_file()
Dim sPath As String
sPath = ActiveWorkbook.Path
Dim wb As Workbook
Dim i, j As Long
j = 1
Application.ScreenUpdating = False
With ThisWorkbook.Sheets("Sheet1")
For i = 1 To 10000 Step 1
Set wb = Workbooks.Add
.Cells(i, "A").Resize(1).EntireRow.Copy wb.Sheets("Sheet1").Range("A1")
wb.SaveAs Filename:=sPath & "\" & j & ".xlsx"
j = j + 1
wb.Close False
Next i
End With
Application.ScreenUpdating = True
End Sub
 

File đính kèm

  • tách mỗi dòng thành 1 file excel.jpg
    tách mỗi dòng thành 1 file excel.jpg
    148.9 KB · Đọc: 14
Trước khi thực hiện một việc thì phải biết cái mục tiêu của mình.

Theo bạn, nếu không "quá chậm" thì thực hiện copy 10 ngàn dòng ra 10 ngàn files mất bao nhiêu lâu?
dưới 1 giây? khoảng 10 giây? khoảng 10 phút? khoảng 2 giờ (uống cả phê cả buổi)?
 
Upvote 0
10 ngàn là mình ví dụ thôi bác, thực tế không tới con số này.
Còn khái niệm "không quá chậm" thì ở đây có thể hiểu là: code của mình là mốc, nhanh hơn code của mình thì gọi là nhanh hơn, VD 1/3 thời gian code của mình chẳng hạn.
Mình có thấy 1 video tách 200 file của 5 ngàn dòng trong vòng 2 phút. Được viết bằng VBA dictionary (nhưng video đó lại không có show code)
Còn ở bài này mong muốn của mình là chỉ cần nhanh hơn code của mình là được.
Cảm ơn bác.
 
Upvote 0
"Một dòng thành một file excel, tức là 10 ngàn dòng thành 10 ngàn file."

Bài toán này mà dùng Dictionary thì trên trình độ của tôi quá xa. Đầu hàng vô điều kiện.

...Mình có thấy 1 video tách 200 file của 5 ngàn dòng trong vòng 2 phút. Được viết bằng VBA dictionary (nhưng video đó lại không có show code)
...
 
Upvote 0
"Một dòng thành một file excel, tức là 10 ngàn dòng thành 10 ngàn file."

Bài toán này mà dùng Dictionary thì trên trình độ của tôi quá xa. Đầu hàng vô điều kiện.
Mình không có nói phải xài Dictionary bác, mình chỉ ví dụ thôi.
Nói đơn giản hiện tại mình đang đi bằng xe đạp, mình đã chán xe đạp. Nên cần hỗ trợ nâng cấp nên xe máy, ô tô, máy bay......
Nâng cấp kiểu gì cũng được, chỉ cần không quay lại xe đạp là được.
 
Upvote 0
Chào anh em GPE, mình có một bài tập tách mỗi dòng thành một file excel.
Bài này mình thấy cũng thú vị nên gửi anh em xem hỗ trợ giúp.
Một dòng thành một file excel, tức là 10 ngàn dòng thành 10 ngàn file.
Nhờ anh em hỗ trợ giúp.
Đa tạ anh em.
Bài đã được tự động gộp:

À cho mình nói thêm mình cũng có thử code tách thử thì cũng tách được, nhưng mà mỗi lần dùng code này là mình phải đi đâu đó uống cafe cả buổi, rồi khi về mới thấy được kết quả. (Tức là nó không chậm, mà phải gọi là quá chậm). Nên mình mong muốn về tốc độ một tí. Cảm ơn anh em.

Sub tach_file_thanh_nhieu_file()
Dim sPath As String
sPath = ActiveWorkbook.Path
Dim wb As Workbook
Dim i, j As Long
j = 1
Application.ScreenUpdating = False
With ThisWorkbook.Sheets("Sheet1")
For i = 1 To 10000 Step 1
Set wb = Workbooks.Add
.Cells(i, "A").Resize(1).EntireRow.Copy wb.Sheets("Sheet1").Range("A1")
wb.SaveAs Filename:=sPath & "\" & j & ".xlsx"
j = j + 1
wb.Close False
Next i
End With
Application.ScreenUpdating = True
End Sub
Có thể up lên đây vài chục file để test thử và hy vọng sẽ có cách khác.
 
Upvote 0
Có thể up lên đây vài chục file để test thử và hy vọng sẽ có cách khác.
Bác test thử file này. Trong file cũng có code và mình khá ấn tượng với tốc độ của code. Nhưng code này không thực hiện được yêu cầu của bài của mình đề ra. Nhưng tốc độ thì đạt yêu cầu.
 

File đính kèm

  • Split to files.xlsb
    2.7 MB · Đọc: 9
Upvote 0
Bác test thử file này. Trong file cũng có code và mình khá ấn tượng với tốc độ của code. Nhưng code này không thực hiện được yêu cầu của bài của mình đề ra. Nhưng tốc độ thì đạt yêu cầu.
Code file này thì khác hoàn toàn với code file bài 1, tôi thấy code này chạy tốc độ vậy cũng ổn rồi, còn bạn nói không áp dụng được cho file của bạn lý do gì không được. Không thấy file thì tôi cũng chịu luôn.
Nếu dùng Python để tách file (Tách ra 169 file) ở #7 thì mất 10 giây.
 
Lần chỉnh sửa cuối:
Upvote 0
Code file này thì khác hoàn toàn với code file bài 1, tôi thấy code này chạy tốc độ vậy cũng ổn rồi, còn bạn nói không áp dụng được cho file của bạn lý do gì không được. Không thấy file thì tôi cũng chịu luôn.
Nếu dùng Python để tách file (Tách ra 169 file) ở #7 thì mất 10 giây.
Nghe bác nói Python 169 file chỉ mất 10s, nghe hấp dẫn quá. Mình cũng biết sơ cái này, để mình nghiên cứu bằng Python vậy. Cảm ơn bác.
 
Upvote 1
Web KT

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

Back
Top Bottom