Cho mình hỏi cách chia 1 sheet thành nhiều sheet (3 người xem)

Liên hệ QC

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

phoenixjutom

Thành viên mới
Tham gia
25/2/10
Bài viết
4
Được thích
0
Mình có 1 file excel ví dụ có 100 dòng, ví dụ mình muốn chia nhỏ thành 10 sheet, mỗi sheet có 10 dòng thì làm thê' nào? Đây chỉ là file dữ liệu chứ hoàn toàn không có hàm hay code gì cả. Mong các bạn chỉ giúp mình với.
 
Mình có 1 file excel ví dụ có 100 dòng, ví dụ mình muốn chia nhỏ thành 10 sheet, mỗi sheet có 10 dòng thì làm thê' nào? Đây chỉ là file dữ liệu chứ hoàn toàn không có hàm hay code gì cả. Mong các bạn chỉ giúp mình với.
Chia đại, cứ 10 dòng 1 sheet... rồi 10 dòng tiếp theo 1 sheet khác hay có điều kiện gì không? Chẳng hạn cùng 1 LOẠI gì đó thì sẽ chung 1 sheet
Nói không không thế chắc không ăn thua đâu ---> Có file minh họa gữi lên đây sẽ dể hơn bạn nhé!
 
Không có điều kiện gì khi chia cả bạn oi, chỉ là nếu chia theo kiểu cut paste thì mệt quá. Nhất là đối với file vài ngàn dòng thì...Mình có 1 file up lên ví dụ đây, rất bình thường. Mong bạn xem giúp http://www.mediafire.com/?nwxwwu2mozj
 
Lần chỉnh sửa cuối:
Không có điều kiện gì khi chia cả bạn oi, chỉ là nếu chia theo kiểu cut paste thì mệt quá. Nhất là đối với file vài ngàn dòng thì...Mình có 1 file up lên ví dụ đây, rất bình thường. Mong bạn xem giúp http://www.mediafire.com/?nwxwwu2mozj
Ví dụ là code này xem:
PHP:
Sub SplitData()
  Dim Rng As Range, i As Long
  On Error Resume Next
  Application.ScreenUpdating = False
  Set Rng = Range(Sheets("Main").[A1], Sheets("Main").[A65536].End(xlUp))
  If Rng.Rows.Count <= 20 Then Exit Sub
  Do
    i = i + 1
    If Sheets("T" & Format(i, "00")) Is Nothing Then
      With Sheets.Add(After:=Sheets(Sheets.Count))
        .Name = "T" & Format(i, "00")
        .Range("A1:A20").Value = Rng.Offset((i - 1) * 20).Resize(20).Value
      End With
    End If
  Loop Until i * 20 >= Rng.Rows.Count
  Sheets("Main").Activate
  Application.ScreenUpdating = True
End Sub
Trong đó sheet chứa dữ liệu nguồn tôi đặt tên là Main, các sheet con được đặt tên là T01, T02....
 

File đính kèm

Cám ơn bạn lắm, file SplitData.xls đúng với mong muốn của mình. Có điều đối với các file excel của mình, mình tạo macros = code của bạn thì run không có tác dụng gì cả, bạn hướng dẫn giúp mình với. Mình xài excel 2007
 
Cám ơn bạn lắm, file SplitData.xls đúng với mong muốn của mình. Có điều đối với các file excel của mình, mình tạo macros = code của bạn thì run không có tác dụng gì cả, bạn hướng dẫn giúp mình với. Mình xài excel 2007
Có mấy điểm chú ý:
- Tên sheet chứa dữ liệu là Main
- Dữ liệu bắt đầu từ A1 trở xuống
Nếu file của bạn có khác hơn thì phải sửa lại cho phù hợp
Chủ yếu là sửa đoạn này: Set Rng = Range(Sheets("Main").[A1], Sheets("Main").[A65536].End(xlUp))
Ví dụ:
- Tên sheet trong file của bạn là TongHop
- Dữ liệu bắt đầu từ B5 trở xuống
Vậy sẽ sửa đoạn trên thành:
Set Rng = Range(Sheets("TongHop").[B5], Sheets("TongHop").[B65536].End(xlUp))
 
Lần chỉnh sửa cuối:
Mình làm đuọc rồi, thank bạn nhiều lam, cám ơn ban nhiều nha. Còn đối với những file có nhiều hơn 65536 dòng thì làm sao bạn? Mình có 1 file hơn triệu dòng lận, dùng code trên sửa số 65536 lại thì run không được. Bạn chỉ mình với. Bạn có thể cho mình xin nick yahoo không?
 
Lần chỉnh sửa cuối:
Mình làm đuọc rồi, thank bạn nhiều lam, cám ơn ban nhiều nha. Còn đối với những file có nhiều hơn 65536 dòng thì làm sao bạn? Mình có 1 file hơn triệu dòng lận, dùng code trên sửa số 65536 lại thì run không được. Bạn chỉ mình với. Bạn có thể cho mình xin nick yahoo không?
File hơn 1 triệu dòng chắc là Excel 2007 rồi, vậy thì:
- Sửa 65536 thành 1048576
- Ngoài ra, để code chạy được trên Excel 2007, bạn phải SaveAs nó thành đuôi .xlsm
Chú ý:
- Với dữ liệu 1 triệu dòng, nếu chia mổi sheet 20 dòng thì bạn tính xem phải cần bao nhiêu sheet?
- Quá trình thêm sheet với số lượng lớn hơn 100 sheet thường phát sinh lổi (quá tải) <--- Bạn đặc biệt lưu ý điều này nha!
 
Gi anh ndu96081631
Trang va tải tập tin SplitData.xls về, chạy thấy thích qúa
Anh Du ơ
i, giúp Trang vi,
* Một là anh viết giúp Code chia sheet có các
điều kiện chia như sau
- Có số dòng sẽ
đưc cập nhật thêm hàng ngày, cụ thể
- Hiện tại có 1014 dòng, muốn chia thành 12 sheet con
- Sheet con T01 có 4 dòng cho cập nhật ngày hiện tại và tươ
ng lai. STT (A1:A4)
- 10 sheet con t
T02 đến T11 cho các ngày đã qua. STT (A5:A1004). 10 sheet này số dòng bng nhau là 100
- Sheet con T12 có 10 dòng lẻ cuối. STT (A1005:1014)
* Hai là, khi
đã có Code chia sheet, thì các thao tác để m chưong trình,dán,khai báo gì đó,
rồi chạy chươ
ng trình thế nào ạ
* "Không có điều kiện gì khi chia cả bạn oi, chỉ là nếu chia theo kiểu cut paste thì mệt quá.
Nhất là đối với file vài ngàn dòng thì...Mình có 1 file up lên ví dụ đây, rất bình thường - phoenixjutom"
* Excel 2007 ạ
Chân trọng cám ơ
n anh
 
Gi anh ndu96081631
Trang va tải tập tin SplitData.xls về, chạy thấy thích qúa
Anh Du ơ
i, giúp Trang vi,
* Một là anh viết giúp Code chia sheet có các
điều kiện chia như sau
- Có số dòng sẽ
đưc cập nhật thêm hàng ngày, cụ thể
- Hiện tại có 1014 dòng, muốn chia thành 12 sheet con
- Sheet con T01 có 4 dòng cho cập nhật ngày hiện tại và tươ
ng lai. STT (A1:A4)
- 10 sheet con t
T02 đến T11 cho các ngày đã qua. STT (A5:A1004). 10 sheet này số dòng bng nhau là 100
- Sheet con T12 có 10 dòng lẻ cuối. STT (A1005:1014)
* Hai là, khi
đã có Code chia sheet, thì các thao tác để m chưong trình,dán,khai báo gì đó,
rồi chạy chươ
ng trình thế nào ạ
* "Không có điều kiện gì khi chia cả bạn oi, chỉ là nếu chia theo kiểu cut paste thì mệt quá.
Nhất là đối với file vài ngàn dòng thì...Mình có 1 file up lên ví dụ đây, rất bình thường - phoenixjutom"
* Excel 2007 ạ
Chân trọng cám ơ
n anh
Vui lòng đưa file lên đây cho thuận tiện việc viết code nhé
Lưu ý:
- Trong file nhớ ghi rõ yêu cầu
- Nếu dữ liệu trong file chỉ là giả lập thì ít nhất nó cũng phải có cấu trúc giống với file thật
 
Hi, Excell cht chẽ thật, anh à, Trang xin đưc sa lại câu hỏi, chỗ màu đỏ í

* Một là anh viết giúp Code chia sheet có các điều kiện chia như sau
- Có số dòng sẽ
đưc cập nhật thêm hàng ngày, cụ thể
- Hiện tại có 1014 dòng, muốn chia thành 12 sheet con
- Sheet con T01 có 4 dòng
để dùng cho cập nhật ngày hiện tại và tương lai. Số dòng (T dòng 1 : dòng 4)
- 10 sheet con t T02 đến T11 để dùng cho các ngày đã qua. Số dòng (T dòng 5 : dòng 1004). 10 sheet này số dòng bng nhau là 100
- Sheet con T12 có 10 dòng lẻ cuối.
Số dòng (T dòng 1005: dòng 1014)
* Hai là, khi đã có Code chia sheet, thì các thao tác để m chương trình,dán,khai báo gì đó,
rồi chạy chươ
ng trình thế nào ạ..."
Thêm : Cột A là ngày tháng,ngày hiện tại A1=29/03/2010 đến A1014=20/06/2007, các ngày sau sẽ cập nhật sau Sheet con T01
Côt B là số bất kỳ ,ví du chuỗi số t nhiên 1;2;3;4;5...Hoc chuỗi ch W
Số liệu gỉa lập vậy thui anh à.
 
Thay vì tạo thành nhiều sheet em muốn tạo thành nhiều file thì làm thế nào vậy bác?
 
Có mấy điểm chú ý:
- Tên sheet chứa dữ liệu là Main
- Dữ liệu bắt đầu từ A1 trở xuống
Nếu file của bạn có khác hơn thì phải sửa lại cho phù hợp
Chủ yếu là sửa đoạn này: Set Rng = Range(Sheets("Main").[A1], Sheets("Main").[A65536].End(xlUp))
Ví dụ:
- Tên sheet trong file của bạn là TongHop
- Dữ liệu bắt đầu từ B5 trở xuống
Vậy sẽ sửa đoạn trên thành:
Set Rng = Range(Sheets("TongHop").[B5], Sheets("TongHop").[B65536].End(xlUp))

thỉnh giáo cao nhân tiền bối thêm 1 đoạn nữa là nếu muốn tách 1 file ( dao động khoảng 2500=> 3000 dòng ) và trong đó có hơn 10 cột , có cả hàng rỗng xem kẽ các hàng có dữ liệu, ,
theo cách trên tiểu bối có thể lấy được , nhưng không thể lấy nhiều hơn 1 cột , xin tiền bối chỉ điểm !
mục tiêu dự định tiếp theo là chia 1 sheet 3000 hàng ( 10 cột) ra thành 6 sheet, mỗi sheet 500 hàng (10 cột) , tự save thành các tên theo tên sheet ! , xin thỉnh giáo !
 
Dear anh ndu96081631

Bây giờ em muốn chia mỗi sheet là 300 dòng, vậy em vào chỗ nào để sửa code vậy anh?

Anh trả lời giúp em nhé. Thanks anh
 
Chia theo bộ phận giúp mình theo file đính kèm các bạn nhé
 

File đính kèm

Có mấy điểm chú ý:
- Tên sheet chứa dữ liệu là Main
- Dữ liệu bắt đầu từ A1 trở xuống
Nếu file của bạn có khác hơn thì phải sửa lại cho phù hợp
Chủ yếu là sửa đoạn này: Set Rng = Range(Sheets("Main").[A1], Sheets("Main").[A65536].End(xlUp))
Ví dụ:
- Tên sheet trong file của bạn là TongHop
- Dữ liệu bắt đầu từ B5 trở xuống
Vậy sẽ sửa đoạn trên thành:
Set Rng = Range(Sheets("TongHop").[B5], Sheets("TongHop").[B65536].End(xlUp))


code trên chỉ hiện thị dữ liệu cột đầu tiền em muốn hiển thị tất cả các cột thì sửa thế nào anh. cám ơn anh.
 
em muốn chia sheet 1 có 100 dòng thành 10 sheet mỗi sheet có 10 dòng thì em làm thế nào ạ
 
Vui lòng đưa file lên đây cho thuận tiện việc viết code nhé
Lưu ý:
- Trong file nhớ ghi rõ yêu cầu
- Nếu dữ liệu trong file chỉ là giả lập thì ít nhất nó cũng phải có cấu trúc giống với file thật
Anh ndu96081631 giúp e tách file tổng hợp này theo tên phòng ban với ạ
 

File đính kèm

Anh ndu96081631 giúp e tách file tổng hợp này theo tên phòng ban với ạ
Bạn đã mở Topic tại sao không vào đó hỏi tiếp và nêu cụ thể vấn đề cần mà lại đi hỏi ké (bạn hỏi tách File thì không liên quan đến việc tách sheet trong chủ đề của Topic này), vừa không được trả lời mà còn vi phạm nội quy.

Bạn muốn tách file thì về Topic cũ sửa lại tiêu đề và nêu rõ nội dung cần, Topic kia tôi cũng đã góp ý cụ thể ở bài 16, Link bài viết.
https://www.giaiphapexcel.com/diendan/threads/tách-sheet-tong-hop-với-mỗi-sheet-mới-là-dữ-liệu-của-1-phòng.137432/
 
Lần chỉnh sửa cuối:
Ví dụ là code này xem:
PHP:
Sub SplitData()
  Dim Rng As Range, i As Long
  On Error Resume Next
  Application.ScreenUpdating = False
  Set Rng = Range(Sheets("Main").[A1], Sheets("Main").[A65536].End(xlUp))
  If Rng.Rows.Count <= 20 Then Exit Sub
  Do
    i = i + 1
    If Sheets("T" & Format(i, "00")) Is Nothing Then
      With Sheets.Add(After:=Sheets(Sheets.Count))
        .Name = "T" & Format(i, "00")
        .Range("A1:A20").Value = Rng.Offset((i - 1) * 20).Resize(20).Value
      End With
    End If
  Loop Until i * 20 >= Rng.Rows.Count
  Sheets("Main").Activate
  Application.ScreenUpdating = True
End Sub
Trong đó sheet chứa dữ liệu nguồn tôi đặt tên là Main, các sheet con được đặt tên là T01, T02....



anh ơi, như ví dụ này thì mỗi sheet sẽ có 20 dòng, em muốn trong mỗi sheet sẽ chia tiếp 5 cột, mỗi cột 4 dòng thi phải làm sao ạ? hy vọng mọi người giúp đỡ
 
Web KT

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

Back
Top Bottom