Chia Một File Excel Thành Nhiều File Nhỏ | Giải Pháp Excel

Giải Pháp Excel
  • Trang chủ Có gì mới Hoạt động gần nhất Tác giả
  • Diễn đàn Tìm bài viết mới Tìm theo chuyên mục
  • Video New Video về Excel Video về tin học khác Tin tức về tin học chung
  • Thông tin mới Featured content Tìm bài mới Tài Nguyên Mới Hoạt động gần nhất
  • Tài nguyên Đánh giá mới nhất Tìm tài nguyên
  • Facebook
  • Đóng góp
Đăng nhập Đăng Ký Có gì mới? Tìm kiếm

Tìm kiếm

Mọi nơi Đề tài Diễn đàn này Đề tài này Chỉ tìm trong tiêu đề Note Bởi: Tìm kiếm Tìm nâng cao…
  • Tìm bài viết mới
  • Tìm theo chuyên mục
Menu Đăng nhập Đăng Ký Install the app Install How to install the app on iOS

Follow along with the video below to see how to install our site as a web app on your home screen.

Note: This feature may not be available in some browsers.

  • Khách ơi! GPE thông tin đến bạn ấn phẩm "lập trình VBA trong Excel": - Phần cơ bản - Phần Nâng Cao - VBA trong Excel - Cải thiện và tăng tốc
  • Trang chủ
  • Diễn đàn
  • Lập Trình với Excel
You are using an out of date browser. It may not display this or other websites correctly.You should upgrade or use an alternative browser. Chia một file excel thành nhiều file nhỏ (1 người xem)
  • Thread starter Thread starter katunkatun
  • Ngày gửi Ngày gửi 3/8/18
Liên hệ QC

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

Đang trực tuyến: 2 (Thành viên: 0, Khách: 2) K

katunkatun

Thành viên mới
Tham gia 3/8/18 Bài viết 12 Được thích 4 Giới tính Nam Xin chào anh/chị, Hiện tại mình đang có một vấn đề rất mong các anh/chị cao nhân giúp đỡ. Mình có 1 file lớn xuất từ hệ thống. Sếp mình cần chia nó thành từng file nhỏ và mỗi file phải đó phải có password (lương). Mình vò đầu bức tóc thì chỉ xem ra được một điểm chung là cứ 35 dòng sẽ được tách thành một file nhỏ thôi. Anh/chị nào biết cách chỉ mình với. Cám ơn anh/chị rất nhiều Sắp xếp theo thời gian sắp xếp theo bầu chọn nghiaphuc

nghiaphuc

Thành viên gạo cội
Thành viên danh dự Tham gia 25/9/09 Bài viết 5,729 Được thích 8,859 Giới tính Nam Nghề nghiệp Giáo viên
katunkatun đã viết: Xin chào anh/chị, Hiện tại mình đang có một vấn đề rất mong các anh/chị cao nhân giúp đỡ. Mình có 1 file lớn xuất từ hệ thống. Sếp mình cần chia nó thành từng file nhỏ và mỗi file phải đó phải có password (lương). Mình vò đầu bức tóc thì chỉ xem ra được một điểm chung là cứ 35 dòng sẽ được tách thành một file nhỏ thôi. Anh/chị nào biết cách chỉ mình với. Cám ơn anh/chị rất nhiều Nhấp chuột vào đây để mở rộng...
Phải có file cụ thể mới làm việc được bạn ạ. Bạn giả lập 1 file có cấu trúc giống với file thực tế của bạn rồi đưa lên đây, sẽ có câu trả lời sớm thôi. Upvote 0 K

katunkatun

Thành viên mới
Tham gia 3/8/18 Bài viết 12 Được thích 4 Giới tính Nam Do file dài quá nên mình cắt bớt chỉ để lại vài trường hợp cho dễ nhìn. Sếp mình yêu cầu mỗi phiếu lương của từng nhân viên phải được xuất ra thành một file riêng. Như trong file thì 5 người này trong sheet phiếu lương sẽ xuất ra 5 file excel riêng biệt và phải tên và password tương ứng như trong sheet Password bạn ạ. Bạn xem qua và giúp với. Xin cám ơn

File đính kèm

  • Payslip.xlsx Payslip.xlsx 13.2 KB · Đọc: 30
Upvote 0 befaint

befaint

|||||||||||||
Tham gia 6/1/11 Bài viết 14,600 Được thích 19,843
katunkatun đã viết: Xin chào anh/chị, Hiện tại mình đang có một vấn đề rất mong các anh/chị cao nhân giúp đỡ. Mình có 1 file lớn xuất từ hệ thống. Sếp mình cần chia nó thành từng file nhỏ và mỗi file phải đó phải có password (lương). Mình vò đầu bức tóc thì chỉ xem ra được một điểm chung là cứ 35 dòng sẽ được tách thành một file nhỏ thôi. Anh/chị nào biết cách chỉ mình với. Cám ơn anh/chị rất nhiều Nhấp chuột vào đây để mở rộng...
Bạn kiếm file dữ liệu gốc chứa bảng lương ấy, chứ bảng trên là Form bảng lương rồi (mà không ai lại đi lặp lại một form như vậy). Chia ra các files nhỏ rồi có gửi email cho từng người không bạn? Hay là sếp tự làm tiếp? Nếu mà có gửi email luôn thì nêu yêu cầu luôn nhé. (Bạn có muốn lấy thưởng từ sếp không?) Upvote 0 K

katunkatun

Thành viên mới
Tham gia 3/8/18 Bài viết 12 Được thích 4 Giới tính Nam befaint File dữ liệu gốc nó cũng như vậy bạn ạ. Chỉ là trong đó chứa lương nên mình không được phép show ra (thành thật xin lỗi) và những thông tin như mã nhân viên, phòng ban, chức vụ. Còn lại thì nó cũng nằm gói gọn trong form đó thôi bạn ạ. (mỗi phiếu lương bao gồm 35 dòng excel) Bạn nói chính xác quá luôn: sau khi chia nhỏ ra sẽ phải gửi mail cho từng người luôn. Do lần đầu mình lên đây nhờ vả nên chưa dám nhờ nhiều ^^ Vì hiện tại bên mình phải in phiếu lương ra giấy, rồi gấp thủ công sau đó phát cho từng bộ phận (mất cả buổi sáng mới làm xong được bạn ạ). Ban đầu mình dùng mailing gửi mẫu cho từng người nhưng bất tiện ở chổ lỡ nhập email nhầm người này sang người khác thì không còn gì là bảo mật nữa, hic. Làm được cái này thì giảm tải được khối lượng công việc thôi chứ chắc gì đã có thưởng bạn ạ, :(( Upvote 0 nghiaphuc

nghiaphuc

Thành viên gạo cội
Thành viên danh dự Tham gia 25/9/09 Bài viết 5,729 Được thích 8,859 Giới tính Nam Nghề nghiệp Giáo viên
katunkatun đã viết: Do file dài quá nên mình cắt bớt chỉ để lại vài trường hợp cho dễ nhìn. Sếp mình yêu cầu mỗi phiếu lương của từng nhân viên phải được xuất ra thành một file riêng. Như trong file thì 5 người này trong sheet phiếu lương sẽ xuất ra 5 file excel riêng biệt và phải tên và password tương ứng như trong sheet Password bạn ạ. Bạn xem qua và giúp với. Xin cám ơn Nhấp chuột vào đây để mở rộng...
Code như sau nhé, nhớ đưa file này vào 1 thư mục cho dễ quản lý vì sau khi chạy code sẽ có nhiều file con được tạo ra đấy. Mã: Sao chép. Sub TachFile() Dim Cll As Range, Code As String, Pass As String On Error GoTo Err With Application .ScreenUpdating = False: .EnableEvents = False: .DisplayAlerts = False End With Set Cll = Sheet1.[A5] Do While Not IsEmpty(Cll) Code = Mid(Cll.Offset(2), 22, 6) 'Ma NV Pass = Sheet2.[B:B].Find(Code, , xlFormulas, xlWhole).Offset(, 1) 'Password Sheet1.Copy 'Copy sheet Phieu luong qua file moi With ActiveWorkbook Cll.Resize(30, 2).Copy .Sheets(1).[A5] 'Copy du lieu qua file moi .Sheets(1).[36:65000].Delete 'Xoa dong thua .SaveAs ThisWorkbook.Path & "\" & Code & ".xlsx", , Pass 'Luu file con .Close 'Dong file con End With Set Cll = Cll.Offset(35) 'Phieu luong ke tiep Loop MsgBox "Xong!" Err: With Application .ScreenUpdating = True: .EnableEvents = True: .DisplayAlerts = True End With End Sub Bài đã được tự động gộp: 3/8/18
katunkatun đã viết: befaint Bạn nói chính xác quá luôn: sau khi chia nhỏ ra sẽ phải gửi mail cho từng người luôn. Do lần đầu mình lên đây nhờ vả nên chưa dám nhờ nhiều ^^ Vì hiện tại bên mình phải in phiếu lương ra giấy, rồi gấp thủ công sau đó phát cho từng bộ phận (mất cả buổi sáng mới làm xong được bạn ạ). Ban đầu mình dùng mailing gửi mẫu cho từng người nhưng bất tiện ở chổ lỡ nhập email nhầm người này sang người khác thì không còn gì là bảo mật nữa, hic.( Nhấp chuột vào đây để mở rộng...
Cái vụ gửi email cho từng người thì bạn tham khảo trên diễn đàn, đã có 1 topic nói rất kỹ về vấn đề này: Gửi email tính lương cho từng người

File đính kèm

  • Payslip.xlsm Payslip.xlsm 21.5 KB · Đọc: 13
Lần chỉnh sửa cuối: 3/8/18 Upvote 0 befaint

befaint

|||||||||||||
Tham gia 6/1/11 Bài viết 14,600 Được thích 19,843
katunkatun đã viết: befaint File dữ liệu gốc nó cũng như vậy bạn ạ. Chỉ là trong đó chứa lương nên mình không được phép show ra (thành thật xin lỗi) và những thông tin như mã nhân viên, phòng ban, chức vụ. Còn lại thì nó cũng nằm gói gọn trong form đó thôi bạn ạ. (mỗi phiếu lương bao gồm 35 dòng excel) Bạn nói chính xác quá luôn: sau khi chia nhỏ ra sẽ phải gửi mail cho từng người luôn. Do lần đầu mình lên đây nhờ vả nên chưa dám nhờ nhiều ^^ Vì hiện tại bên mình phải in phiếu lương ra giấy, rồi gấp thủ công sau đó phát cho từng bộ phận (mất cả buổi sáng mới làm xong được bạn ạ). Ban đầu mình dùng mailing gửi mẫu cho từng người nhưng bất tiện ở chổ lỡ nhập email nhầm người này sang người khác thì không còn gì là bảo mật nữa, hic. Làm được cái này thì giảm tải được khối lượng công việc thôi chứ chắc gì đã có thưởng bạn ạ, :(( Nhấp chuột vào đây để mở rộng...
(Mình nói nhờ giúp thôi, chứ nói nhờ vả thì đau nhiều thứ lắm :-p) Vậy công việc thông báo lương của bạn gồm 2 phần: - Gửi bản cứng (giấy in); - Gửi email (đính kèm file). Hai công việc kia với cỡ 150 người thôi cũng bở hơi tai rồi đó (bình thường nếu một người làm nhanh cũng ngót 2 ngày). Nếu có VBA hỗ trợ thì (sau khi có dữ liệu lương đầy đủ) mọi thứ sẽ xong trong nửa ngày (bao gồm cả gấp giấy và phát xong bản cứng). Dữ liệu ban đầu là bảng dữ liệu trải dài, không phải nằm trong form đó đâu. Bạn thay dữ liệu thật bằng abc gì đó, con số thì ghi 10-20 gì đó, giữ lại tiêu đề các cột. Vậy giải quyết xong vụ bí mật bí đường liền. Upvote 0 K

katunkatun

Thành viên mới
Tham gia 3/8/18 Bài viết 12 Được thích 4 Giới tính Nam
nghiaphuc đã viết: Code như sau nhé, nhớ đưa file này vào 1 thư mục cho dễ quản lý vì sau khi chạy code sẽ có nhiều file con được tạo ra đấy. Mã: Sao chép. Sub TachFile() Dim Cll As Range, Code As String, Pass As String On Error GoTo Err With Application .ScreenUpdating = False: .EnableEvents = False: .DisplayAlerts = False End With Set Cll = Sheet1.[A5] Do While Not IsEmpty(Cll) Code = Mid(Cll.Offset(2), 22, 6) 'Ma NV Pass = Sheet2.[B:B].Find(Code, , xlFormulas, xlWhole).Offset(, 1) 'Password Sheet1.Copy 'Copy sheet Phieu luong qua file moi With ActiveWorkbook Cll.Resize(30, 2).Copy .Sheets(1).[A5] 'Copy du lieu qua file moi .Sheets(1).[36:65000].Delete 'Xoa dong thua .SaveAs ThisWorkbook.Path & "\" & Code & ".xlsx", , Pass 'Luu file con .Close 'Dong file con End With Set Cll = Cll.Offset(35) 'Phieu luong ke tiep Loop MsgBox "Xong!" Err: With Application .ScreenUpdating = True: .EnableEvents = True: .DisplayAlerts = True End With End Sub Bài đã được tự động gộp: 3/8/18 Cái vụ gửi email cho từng người thì bạn tham khảo trên diễn đàn, đã có 1 topic nói rất kỹ về vấn đề này: Gửi email tính lương cho từng người Nhấp chuột vào đây để mở rộng...
Cám ơn bạn, mình sẽ tham khảo topic bạn cho và cám ơn code của bạn, mình sẽ thử. Bài đã được tự động gộp: 4/8/18
befaint đã viết: (Mình nói nhờ giúp thôi, chứ nói nhờ vả thì đau nhiều thứ lắm :p) Vậy công việc thông báo lương của bạn gồm 2 phần: - Gửi bản cứng (giấy in); - Gửi email (đính kèm file). Hai công việc kia với cỡ 150 người thôi cũng bở hơi tai rồi đó (bình thường nếu một người làm nhanh cũng ngót 2 ngày). Nếu có VBA hỗ trợ thì (sau khi có dữ liệu lương đầy đủ) mọi thứ sẽ xong trong nửa ngày (bao gồm cả gấp giấy và phát xong bản cứng). Dữ liệu ban đầu là bảng dữ liệu trải dài, không phải nằm trong form đó đâu. Bạn thay dữ liệu thật bằng abc gì đó, con số thì ghi 10-20 gì đó, giữ lại tiêu đề các cột. Vậy giải quyết xong vụ bí mật bí đường liền. Nhấp chuột vào đây để mở rộng...
Hiện tại, nếu gửi email thành công bên mình sẽ không phải gửi giấy in nữa, cho nên mình cũng mong giải quyết được cái này. Bên mình hơn 500 người, chỉ việc chỉnh bản in cho vừa trang + gấp giấy thôi là mất cả buổi sáng và nửa buổi chiều. Mình phải huy động thêm các bé thực tập phụ gấp mới mong làm nổi. Nên mình rất mong cái này giải quyết được, nếu được thì giảm tải công việc nhiều lắm. Để dồn thời gian còn lại chạy deadline báo cáo :( Mình sẽ thử bảng code của bạn nghiaphuc xem thế nào. Cám ơn bạn nhiều Lần chỉnh sửa cuối: 4/8/18 Upvote 0 K

katunkatun

Thành viên mới
Tham gia 3/8/18 Bài viết 12 Được thích 4 Giới tính Nam
katunkatun đã viết: Cám ơn bạn, mình sẽ tham khảo topic bạn cho và cám ơn code của bạn, mình sẽ thử. Bài đã được tự động gộp: 4/8/18 Hiện tại, nếu gửi email thành công bên mình sẽ không phải gửi giấy in nữa, cho nên mình cũng mong giải quyết được cái này. Bên mình hơn 500 người, chỉ việc chỉnh bản in cho vừa trang + gấp giấy thôi là mất cả buổi sáng và nửa buổi chiều. Mình phải huy động thêm các bé thực tập phụ gấp mới mong làm nổi. Nên mình rất mong cái này giải quyết được, nếu được thì giảm tải công việc nhiều lắm. Để dồn thời gian còn lại chạy deadline báo cáo :( Mình sẽ thử bảng code của bạn nghiaphuc xem thế nào. Cám ơn bạn nhiều Nhấp chuột vào đây để mở rộng...
Cám ơn bạn nghiaphuc nhiều ạ. Mình đã thử và thành công, tuy nhiên nó còn một vấn đề là khi xuất ra nhiều file con quá, mình có cách nào để khi xuất ra nó nằm sẵn trong một folder không bạn? Upvote 0 befaint

befaint

|||||||||||||
Tham gia 6/1/11 Bài viết 14,600 Được thích 19,843
katunkatun đã viết: Cám ơn bạn nghiaphuc nhiều ạ. Mình đã thử và thành công, tuy nhiên nó còn một vấn đề là khi xuất ra nhiều file con quá, mình có cách nào để khi xuất ra nó nằm sẵn trong một folder không bạn? Nhấp chuột vào đây để mở rộng...
Bạn không nên làm theo phương án này của bạn, làm vậy không khác gì như xưa. Có 500 files rồi, bạn soạn 500 cái thư thì cũng mệt như xưa mà. Mọi thứ bạn cần đã có sẵn hết rồi, chỉ chờ mỗi bảng dữ liệu của bạn thôi. Tức là sẵn tới mức bạn chỉ ấn chuột 01 cái duy nhất là 500 cái thư được gửi đúng, chuẩn, đầy đủ tới 500 người. Bạn để ý kỹ các bài viết trên vào. Lại sắp có chuyện người giúp đi xin người nhờ... Upvote 0 K

katunkatun

Thành viên mới
Tham gia 3/8/18 Bài viết 12 Được thích 4 Giới tính Nam
befaint đã viết: Bạn không nên làm theo phương án này của bạn, làm vậy không khác gì như xưa. Có 500 files rồi, bạn soạn 500 cái thư thì cũng mệt như xưa mà. Mọi thứ bạn cần đã có sẵn hết rồi, chỉ chờ mỗi bảng dữ liệu của bạn thôi. Tức là sẵn tới mức bạn chỉ ấn chuột 01 cái duy nhất là 500 cái thư được gửi đúng, chuẩn, đầy đủ tới 500 người. Bạn để ý kỹ các bài viết trên vào. Lại sắp có chuyện người giúp đi xin người nhờ... Nhấp chuột vào đây để mở rộng...
À, cái này thì thật sự đúng là không nên bạn. Vì nếu ngồi gửi 500 cái mail thì mình thà ngồi in và gấp thủ công còn đỡ khổ hơn nữa. Mình sẽ đọc kĩ cái topic kia vào. Cám ơn bạn nhiều Upvote 0 hoamattroicoi

hoamattroicoi

Thành viên gắn bó
Thành viên BQT Moderator Tham gia 19/12/10 Bài viết 2,587 Được thích 5,776 Nghề nghiệp Công nhân vệ sinh số liệu
katunkatun đã viết: À, cái này thì thật sự đúng là không nên bạn. Vì nếu ngồi gửi 500 cái mail thì mình thà ngồi in và gấp thủ công còn đỡ khổ hơn nữa. Mình sẽ đọc kĩ cái topic kia vào. Cám ơn bạn nhiều Nhấp chuột vào đây để mở rộng...
Bạn phải tiếp tục tìm giải pháp làm cách nào để ngồi uống cafe bấm 1 phát phải gửi được 500 cái mail chứ. Tự nhiên ngồi gõ bụp bụp từng cái gửi thì mình nghĩ cũng " có mà điên" thật, hihi =))) Upvote 0 K

katunkatun

Thành viên mới
Tham gia 3/8/18 Bài viết 12 Được thích 4 Giới tính Nam
hoamattroicoi đã viết: Bạn phải tiếp tục tìm giải pháp làm cách nào để ngồi uống cafe bấm 1 phát phải gửi được 500 cái mail chứ. Tự nhiên ngồi gõ bụp bụp từng cái gửi thì mình nghĩ cũng " có mà điên" thật, hihi =))) Nhấp chuột vào đây để mở rộng...
Cám ơn các Pro đã hướng dẫn. Mình đã tìm được cách gửi hàng loạt theo đúng nhu cầu của mình. Cám ơn các pro lần nữa. ^^ Upvote 0 K

katunkatun

Thành viên mới
Tham gia 3/8/18 Bài viết 12 Được thích 4 Giới tính Nam
nghiaphuc đã viết: Code như sau nhé, nhớ đưa file này vào 1 thư mục cho dễ quản lý vì sau khi chạy code sẽ có nhiều file con được tạo ra đấy. Mã: Sao chép. Sub TachFile() Dim Cll As Range, Code As String, Pass As String On Error GoTo Err With Application .ScreenUpdating = False: .EnableEvents = False: .DisplayAlerts = False End With Set Cll = Sheet1.[A5] Do While Not IsEmpty(Cll) Code = Mid(Cll.Offset(2), 22, 6) 'Ma NV Pass = Sheet2.[B:B].Find(Code, , xlFormulas, xlWhole).Offset(, 1) 'Password Sheet1.Copy 'Copy sheet Phieu luong qua file moi With ActiveWorkbook Cll.Resize(30, 2).Copy .Sheets(1).[A5] 'Copy du lieu qua file moi .Sheets(1).[36:65000].Delete 'Xoa dong thua .SaveAs ThisWorkbook.Path & "\" & Code & ".xlsx", , Pass 'Luu file con .Close 'Dong file con End With Set Cll = Cll.Offset(35) 'Phieu luong ke tiep Loop MsgBox "Xong!" Err: With Application .ScreenUpdating = True: .EnableEvents = True: .DisplayAlerts = True End With End Sub Bài đã được tự động gộp: 3/8/18 Cái vụ gửi email cho từng người thì bạn tham khảo trên diễn đàn, đã có 1 topic nói rất kỹ về vấn đề này: Gửi email tính lương cho từng người Nhấp chuột vào đây để mở rộng...
Bạn ơi, khi file bỏ ít người (cỡ 10 người) thì code vẫn xuất bình thường. Nhưng khi mình copy toàn bộ file lương (cỡ gần 20000 dòng) thì file chỉ xuất 20 phiếu rồi dừng lại và không xuất tiếp nữa. không biết là file vị lỗi gì ạ? Upvote 0 befaint

befaint

|||||||||||||
Tham gia 6/1/11 Bài viết 14,600 Được thích 19,843 @Chủ thớt: Vậy là bài #13 và #14 uýnh nhau lẫn lộn roài! Upvote 0 K

katunkatun

Thành viên mới
Tham gia 3/8/18 Bài viết 12 Được thích 4 Giới tính Nam
befaint đã viết: @Chủ thớt: Vậy là bài #13 và #14 uýnh nhau lẫn lộn roài! Nhấp chuột vào đây để mở rộng...
Hic, ban đầu mình chỉ xuất thử 20 người để test (vì nhiều, xuất lâu) mọi thứ Ok. Giờ mình xuất toàn bộ để test thời gian xuất thì bị vậy. :v Upvote 0 K

katunkatun

Thành viên mới
Tham gia 3/8/18 Bài viết 12 Được thích 4 Giới tính Nam
nghiaphuc đã viết: Code như sau nhé, nhớ đưa file này vào 1 thư mục cho dễ quản lý vì sau khi chạy code sẽ có nhiều file con được tạo ra đấy. Mã: Sao chép. Sub TachFile() Dim Cll As Range, Code As String, Pass As String On Error GoTo Err With Application .ScreenUpdating = False: .EnableEvents = False: .DisplayAlerts = False End With Set Cll = Sheet1.[A5] Do While Not IsEmpty(Cll) Code = Mid(Cll.Offset(2), 22, 6) 'Ma NV Pass = Sheet2.[B:B].Find(Code, , xlFormulas, xlWhole).Offset(, 1) 'Password Sheet1.Copy 'Copy sheet Phieu luong qua file moi With ActiveWorkbook Cll.Resize(30, 2).Copy .Sheets(1).[A5] 'Copy du lieu qua file moi .Sheets(1).[36:65000].Delete 'Xoa dong thua .SaveAs ThisWorkbook.Path & "\" & Code & ".xlsx", , Pass 'Luu file con .Close 'Dong file con End With Set Cll = Cll.Offset(35) 'Phieu luong ke tiep Loop MsgBox "Xong!" Err: With Application .ScreenUpdating = True: .EnableEvents = True: .DisplayAlerts = True End With End Sub Bài đã được tự động gộp: 3/8/18 Cái vụ gửi email cho từng người thì bạn tham khảo trên diễn đàn, đã có 1 topic nói rất kỹ về vấn đề này: Gửi email tính lương cho từng người Nhấp chuột vào đây để mở rộng...
Code này mình thêm chổ .SaveAs ThisWorkbook.Path & "\" thành .SaveAs ThisWorkbook.Path & "\Phieuluong" & Format(DateAdd("m", -1, Now), "yyyy_mm") để file con xuất ra chứa vào thư mục mình tạo sẳn. Nhưng do một số trường hợp đặc biệt (tháng đó nghỉ không lương nhiều không tham gia BH) thì số dòng lương còn lại là 34 (không phải 35). Dẫn đến việc xuất phiếu lương đến đấy sẽ bị dừng và không xuất tiếp nữa Vậy mình có cách nào để fix lỗi này không bác nghiaphuc Upvote 0 nghiaphuc

nghiaphuc

Thành viên gạo cội
Thành viên danh dự Tham gia 25/9/09 Bài viết 5,729 Được thích 8,859 Giới tính Nam Nghề nghiệp Giáo viên
katunkatun đã viết: Code này mình thêm chổ .SaveAs ThisWorkbook.Path & "\" thành .SaveAs ThisWorkbook.Path & "\Phieuluong" & Format(DateAdd("m", -1, Now), "yyyy_mm") để file con xuất ra chứa vào thư mục mình tạo sẳn. Nhưng do một số trường hợp đặc biệt (tháng đó nghỉ không lương nhiều không tham gia BH) thì số dòng lương còn lại là 34 (không phải 35). Dẫn đến việc xuất phiếu lương đến đấy sẽ bị dừng và không xuất tiếp nữa Vậy mình có cách nào để fix lỗi này không bác nghiaphuc Nhấp chuột vào đây để mở rộng...
Bạn sử dụng code sau nhé, trong code này tôi dùng Find để tìm bảng lương kế tiếp chứ không dịch chuyển cố định 35 dòng. Mã: Sao chép. Sub TachFile() Dim Cll As Range, Code As String, Pass As String, fAdd As String, i As Long, Tmp On Error GoTo Err With Application .ScreenUpdating = False: .EnableEvents = False: .DisplayAlerts = False End With Tmp = Sheet2.Range("B6:C" & Sheet2.[B65000].End(xlUp).Row).Value 'Vung luu Ma NV va password Set Cll = Sheet1.[A:A].Find("BTO CO.,LTD", Sheet1.[A1], xlFormulas, xlPart) fAdd = Cll.Address 'Dia chi tuong ung phieu luong dau tien Do Code = Mid(Cll.Offset(2), 22, 6) 'Ma NV i = 1 Do While i <= UBound(Tmp) And Tmp(i, 1) <> Code 'Tim vi tri chua Ma NV trong vung luu Ma NV va pasword i = i + 1 Loop If i <= UBound(Tmp) Then Pass = Tmp(i, 2) 'Password Sheet1.Copy 'Copy sheet Phieu luong qua file moi With ActiveWorkbook Cll.Resize(30, 2).Copy .Sheets(1).[A5] 'Copy du lieu qua file moi .Sheets(1).[36:65000].Delete 'Xoa dong thua .SaveAs ThisWorkbook.Path & "\PhieuLuong" & Format(DateAdd("m", -1, Now), "yyyy_mm") & "\" & Code & ".xlsx", , Pass 'Luu file con .Close 'Dong file con End With Set Cll = Sheet1.[A:A].FindNext(Cll) 'Phieu luong ke tiep Loop Until Cll.Address = fAdd MsgBox "Xong!" Err: With Application .ScreenUpdating = True: .EnableEvents = True: .DisplayAlerts = True End With End Sub Upvote 0 K

katunkatun

Thành viên mới
Tham gia 3/8/18 Bài viết 12 Được thích 4 Giới tính Nam
nghiaphuc đã viết: Bạn sử dụng code sau nhé, trong code này tôi dùng Find để tìm bảng lương kế tiếp chứ không dịch chuyển cố định 35 dòng. Mã: Sao chép. Sub TachFile() Dim Cll As Range, Code As String, Pass As String, fAdd As String, i As Long, Tmp On Error GoTo Err With Application .ScreenUpdating = False: .EnableEvents = False: .DisplayAlerts = False End With Tmp = Sheet2.Range("B6:C" & Sheet2.[B65000].End(xlUp).Row).Value 'Vung luu Ma NV va password Set Cll = Sheet1.[A:A].Find("BTO CO.,LTD", Sheet1.[A1], xlFormulas, xlPart) fAdd = Cll.Address 'Dia chi tuong ung phieu luong dau tien Do Code = Mid(Cll.Offset(2), 22, 6) 'Ma NV i = 1 Do While i <= UBound(Tmp) And Tmp(i, 1) <> Code 'Tim vi tri chua Ma NV trong vung luu Ma NV va pasword i = i + 1 Loop If i <= UBound(Tmp) Then Pass = Tmp(i, 2) 'Password Sheet1.Copy 'Copy sheet Phieu luong qua file moi With ActiveWorkbook Cll.Resize(30, 2).Copy .Sheets(1).[A5] 'Copy du lieu qua file moi .Sheets(1).[36:65000].Delete 'Xoa dong thua .SaveAs ThisWorkbook.Path & "\PhieuLuong" & Format(DateAdd("m", -1, Now), "yyyy_mm") & "\" & Code & ".xlsx", , Pass 'Luu file con .Close 'Dong file con End With Set Cll = Sheet1.[A:A].FindNext(Cll) 'Phieu luong ke tiep Loop Until Cll.Address = fAdd MsgBox "Xong!" Err: With Application .ScreenUpdating = True: .EnableEvents = True: .DisplayAlerts = True End With End Sub Nhấp chuột vào đây để mở rộng...
Mình đã thử và thành công. Ban đầu mình copy và chạy không ra, nhưng tìm ra được lý do là ("BTO CO.,LTD" còn có những khoảng trắng phía trước, mình copy nguyên xi qua và chạy ngon lành. Cám ơn bác nghiaphuc ạ Upvote 0 Bạn phải đăng nhập hoặc đăng ký để trả lời bài viết tại đây.

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

vova2209
  • Question Question
Co, Dãn dòng vừa trang in
  • vova2209
  • Thứ sáu lúc 00:42
  • Lập Trình với Excel
Trả lời 3 Đọc 178 30 phút trước vova2209 vova2209 adua29 Gửi tặng file excel kiểm phiếu bầu cử Đại biểu Quốc hội và Hội đồng nhân dân các cấp (1 người xem)
    • Thích
    • Yêu thích
  • adua29
  • 19/5/11
  • Ứng dụng cho lĩnh vực khác
Trả lời 26 Đọc 30K Hôm nay lúc 20:40 adua29 adua29 adua29 File Excel kiểm phiếu bầu cử Quốc hội và HĐND các cấp
    • Thích
  • adua29
  • 9/4/21
  • Excel Ứng Dụng
Trả lời 25 Đọc 7K Hôm nay lúc 19:57 adua29 adua29 phuongnam366377
  • Question Question
Vì sao KHÔNG nên sử dụng Excel (VBA) làm máy chủ (1 người xem)
  • phuongnam366377
  • Hôm nay lúc 13:23
  • Lập Trình với Excel
Trả lời 2 Đọc 79 Hôm nay lúc 17:43 PhanTuHuong PhanTuHuong S
  • Question Question
Lập trình VBA có nhận biết được một file trong Onedrive đang đồng bộ (sync) và đã đồng bộ? (1 người xem)
  • syquyen1987
  • Hôm nay lúc 16:25
  • Lập Trình với Excel
Trả lời 1 Đọc 38 Hôm nay lúc 16:58 ongke0711 ongke0711 G Vẽ mặt cắt dầm từ excel
    • Thích
    • Yêu thích
    • Cảm ơn
  • gpe.vn
  • 17/6/24
  • Xây dựng ứng dụng.
Trả lời 20 Đọc 2K Hôm nay lúc 14:32 gpe.vn G HeSanbi
  • Question Question
Trình điều khiển Web tải hóa đơn điện tử từ trang Misa (actapp.misa.vn/app)
    • Thích
    • Yêu thích
  • HeSanbi
  • 26/2/26
  • Lập Trình với Excel
Trả lời 3 Đọc 356 Hôm nay lúc 11:19 VietHoangPhan VietHoangPhan Q Phần mềm kế toán Excel cho DN vừa và nhỏ (1 người xem)
    • Thích
    • Ngạc nhiên
  • QUANGTUHN
  • 20/8/20
  • Excel và Kế Toán
Trả lời 7 Đọc 4K Hôm nay lúc 09:19 cuongluukt C SA_DQ Copilot bình luận các ván cờ vua từng ngày.
    • Thích
  • SA_DQ
  • 3/11/25
  • Chia sẻ
Trả lời 91 Đọc 3K Hôm nay lúc 04:44 SA_DQ SA_DQ phuongnam366377 Xây dựng RPC Server cho Excel / Access bằng Delphi – Tận dụng lại DLL và bảo mật mã nguồn
  • phuongnam366377
  • 28/2/26
  • Excel và các ngôn ngữ lập trình khác
Trả lời 1 Đọc 190 Hôm qua, lúc 08:56 phuongnam366377 phuongnam366377 D In đồng loạt phiếu thu, chi
  • ducminh14
  • 5/12/11
  • Các Add-ins cho excel
Trả lời 20 Đọc 11K Hôm qua, lúc 08:24 HUONGHCKT H MinhKhai Giúp kết nối từ Excel VBA đến Oracle database.
  • MinhKhai
  • Thứ tư lúc 17:08
  • Cơ sở dữ liệu
Trả lời 6 Đọc 243 Thứ bảy lúc 19:54 huhumalu H C
  • Question Question
Tự động điền thông tin từ danh sách vào template, nhờ anh chị trợ giúp
  • chienminhanh
  • Thứ ba lúc 22:19
  • Lập Trình với Excel
Trả lời 4 Đọc 212 Thứ bảy lúc 10:49 chienminhanh C GPE-Trợ Lý CHÚC MỪNG NGÀY QUỐC TẾ PHỤ NỮ 08/03/2026 (1 người xem)
    • Thích
    • Cười
    • Cảm ơn
  • GPE-Trợ Lý
  • Thứ bảy lúc 08:35
  • Thông tin về diễn đàn
Trả lời 0 Đọc 2K Thứ bảy lúc 08:35 GPE-Trợ Lý GPE-Trợ Lý PhanTuHuong Chương trình lập Báo cáo khảo sát Địa chất công trình GeoSection
    • Thích
  • PhanTuHuong
  • 7/10/21
  • Xây dựng ứng dụng.
Trả lời 11 Đọc 7K Thứ sáu lúc 23:04 PhanTuHuong PhanTuHuong katanvn File kiểm đếm phiếu bầu cử 2026-2031 dễ hiểu có kết quả và biên bản (2 người xem)
    • Thích
  • katanvn
  • Thứ tư lúc 13:46
  • Excel Ứng Dụng
Trả lời 2 Đọc 3K Thứ sáu lúc 11:07 katanvn katanvn Nguyễn Duy Tuân
  • Dán lên cao
Phiên bản mới Add-in A-Tools AI v10 (2024)
    • Thích
  • Nguyễn Duy Tuân
  • 13/9/24
  • BLUESOFTS: A-Excel, A-Tools
Trả lời 67 Đọc 13K Thứ sáu lúc 09:48 Nguyễn Duy Tuân Nguyễn Duy Tuân HeSanbi
  • Đã giải quyết
LocalizeXL v1.73 - Làm nổi bật ô đang chọn và cuộn trang tự động (phiên bản 2026)
    • Thích
    • Yêu thích
    • Cảm ơn
  • HeSanbi
  • 5/3/21
  • Lập Trình với Excel
Trả lời 87 Đọc 19K Thứ sáu lúc 09:23 HeSanbi HeSanbi C
  • Question Question
Tải tin nhắn từ Zalo về Excel
  • cantl
  • 28/8/23
  • Lập Trình với Excel
Trả lời 3 Đọc 3K Thứ sáu lúc 09:22 ManhDuy2026 M ongke0711
  • Question Question
Tải hóa đơn điện tử (https://hoadondientu.gdt.gov.vn/) Excel Vba
    • Thích
    • Yêu thích
    • Cảm ơn
  • ongke0711
  • 6/10/24
  • Lập Trình với Excel
5 6 7 Trả lời 640 Đọc 95K Thứ năm lúc 21:37 jgdhkkfhkdf J Xem thêm… Chia sẻ: Facebook X Bluesky LinkedIn Reddit Pinterest Tumblr WhatsApp Email Chia sẻ Link

Thành viên có số lượng bài viết cao nhất tháng

  • adua29 5
  • Maika8008 4
  • vova2209 4
  • chienminhanh 3
  • MinhKhai 3
  • SA_DQ 3
  • HeSanbi 3
  • PhanTuHuong 3
  • doredore1988 2
  • Nguyễn Duy Tuân 2
  • katanvn 2
  • huhumalu 2
  • HUONGHCKT 2
  • gpe.vn 2
  • ongke0711 2
  • phuongnam366377 2
  • C. Hoa 1
  • anhtuanle123 1
  • Thóc Sama 1
  • ptm0412 1

Thành viên có điểm tương tác cao nhất tháng

  • Maika8008 7
  • katanvn 4
  • GPE-Trợ Lý 3
  • HUONGHCKT 3
  • SA_DQ 3
  • ptm0412 2
  • yeudoi 2
  • adua29 2
  • ThuyMay93 1
  • mafiana 1
  • doredore1988 1
  • huhumalu 1

Thời gian đếm ngược.

000 Ngày 00 Giờ 00 phút 00 giây Thân mời tham dự sự kiện sinh nhật GPE 2025
  • Trang chủ
  • Diễn đàn
  • Lập Trình với Excel
  • Website này sử dụng cookies. Tiếp tục sử dụng trang này, đồng nghĩa với việc bạn chấp nhận website sử dụng cookies. Chấp nhận Tìm hiểu thêm.…
Back Top Bottom

Từ khóa » Tách File Excel Thành Nhiều File Nhỏ