Giúp mình chuyển dữ liệu giống nhau ở nhiều sheet vào 2 sheet riêng biệt (1 người xem)

Liên hệ QC

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

tuangiang25022008

Thành viên mới
Tham gia
2/7/10
Bài viết
42
Được thích
7
mình có một file excel gồm có 5 sheet.
Sheet1, Sheet 2, sheet 3, 96 hang bong, 98 hang bong.
ở các sheet 1, sheet 2, sheet 3 có cấu trúc giống nhau gồm có 4 cột bao gồm:
Họ và tên, tuổi, giới tính, địa chỉ
các sheet này tuy có rất nhiều tên tuổi khác nhau nhưng chỉ có 2 loại địa chỉ là 98 hàng bông và 96 hàng bông.
Bây giờ để tiện quản lý mình muốn gộp các sheet nay vào 2 sheet là 96 hàng bông và 98 hàng bông. (tức là tất cả những ai có địa chỉ ở 96 hàng bông trong 3 sheet kia thì sẽ có mặt ở sheet 96 hàng bông, và tất cả những ai có địa chỉ ở 98 hàng bông trong 3 sheet kia thì sẽ có mặt ở sheet 98 hàng bông.
Mình có gửi file lên mong các bạn giúp mình.
Bởi vì dữ liệu rất dài mà làm thủ công thì không ổn.
Chân thành cảm ơn và mong sớm hồi âm của các bạn
 

File đính kèm

mình có một file excel gồm có 5 sheet.
Sheet1, Sheet 2, sheet 3, 96 hang bong, 98 hang bong.
ở các sheet 1, sheet 2, sheet 3 có cấu trúc giống nhau gồm có 4 cột bao gồm:
Họ và tên, tuổi, giới tính, địa chỉ
các sheet này tuy có rất nhiều tên tuổi khác nhau nhưng chỉ có 2 loại địa chỉ là 98 hàng bông và 96 hàng bông.
Bây giờ để tiện quản lý mình muốn gộp các sheet nay vào 2 sheet là 96 hàng bông và 98 hàng bông. (tức là tất cả những ai có địa chỉ ở 96 hàng bông trong 3 sheet kia thì sẽ có mặt ở sheet 96 hàng bông, và tất cả những ai có địa chỉ ở 98 hàng bông trong 3 sheet kia thì sẽ có mặt ở sheet 98 hàng bông.
Mình có gửi file lên mong các bạn giúp mình.
Bởi vì dữ liệu rất dài mà làm thủ công thì không ổn.
Chân thành cảm ơn và mong sớm hồi âm của các bạn

Xem code đơn giản này nhé. Lưu ý là cot địa chỉ của 2 sheet gốc phải có sẵn ít nhất 1 dòng dữ liệu, vì điều kiện lắy ở ô D2
 

File đính kèm

Upvote 0
Xem code đơn giản này nhé. Lưu ý là cot địa chỉ của 2 sheet gốc phải có sẵn ít nhất 1 dòng dữ liệu, vì điều kiện lắy ở ô D2

anh ơi em đã hiểu rồi, nhưng em không hiểu là tại sao ấn nút đó lần 2, thì nó lại tạo thêm giống hệt lần 1 (em muốn là khi kích vào nút đó thì các dữ liệu vừa tìm được ở 2 sheet 96 hang bong va 98 hang bông xóa đi rồi mới tìm lại được không anh).
Cám ơn anh nhiều.
Mong sớm hồi âm.
 
Upvote 0
anh ơi em đã hiểu rồi, nhưng em không hiểu là tại sao ấn nút đó lần 2, thì nó lại tạo thêm giống hệt lần 1 (em muốn là khi kích vào nút đó thì các dữ liệu vừa tìm được ở 2 sheet 96 hang bong va 98 hang bông xóa đi rồi mới tìm lại được không anh).
Cám ơn anh nhiều.
Mong sớm hồi âm.

Bạn xem file đính kèm, đã sửa lại theo ý của bạn. Điều kiện lọc cũng đã viết luôn trong code Tại lúc đầu bạn không nói gì hết nên đâu biết bạn muỗn xóa dữ liệu cũ hay không
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Bạn xem file đính kèm, đã sửa lại theo ý của bạn. Điều kiện lọc cũng đã viết luôn trong code Tại lúc đầu bạn không nói gì hết nên đâu biết bạn muỗn xóa dữ liệu cũ hay không

Cám ơn anh rất nhiều.
Em tuy không biết viết VBA nhưng để đọc hiểu VBA thì em cũng biết một ít thôi.
Anh cho em hỏi là đoạn code dưới có nghĩa như thế nào.
dk1 = "96 h" & ChrW(224) & "ng" & " b" & ChrW(244) & "ng"
và giả sử em có thêm 2 hay nhiều sheet hơn nữa nhưng em chỉ cho tìm ở sheet 1, sheet 2, sheet 3 như trên. Còn các sheet khác thì làm việc khác thì em làm thế nào.
Anh giúp em nhé.
Cám ơn anh rất nhiều

Em đã hiểu rồi đó là gộp chữ "96 hàng bông"
cám ơn anh rất nhiều.
Còn vấn đề ( giả sử em có thêm 2 hay nhiều sheet hơn nữa nhưng em chỉ cho tìm ở sheet 1, sheet 2, sheet 3 như trên. Còn các sheet khác thì làm việc khác thì em làm thế nào. )
anh giúp em nhé.
Thanks
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Em đã hiểu rồi đó là gộp chữ "96 hàng bông"
cám ơn anh rất nhiều.
Còn vấn đề ( giả sử em có thêm 2 hay nhiều sheet hơn nữa nhưng em chỉ cho tìm ở sheet 1, sheet 2, sheet 3 như trên. Còn các sheet khác thì làm việc khác thì em làm thế nào. )
anh giúp em nhé.
Thanks

Sub gopdl()
Application.ScreenUpdating = 0
Dim n, dk1, dk2
dk1 = "96 h" & ChrW(224) & "ng" & " b" & ChrW(244) & "ng"
dk2 = "98 h" & ChrW(224) & "ng" & " b" & ChrW(244) & "ng"
Sheets(1).[2:10000].Clear
Sheets(2).[2:10000].Clear
For n = 3 To 5 'neu co nhieu sheet thi thay doi cho nay, file nay dem tu sheet 3 den sheet 5, cu thu xem roi dieu chinh cho phu hop voi thuc te
With Sheets(n).[a1].CurrentRegion
.AutoFilter 4, dk1
.Resize.Offset(1).SpecialCells(12).Copy Sheets(1).[a65000].End(3).Offset(1)
.AutoFilter 4, dk2
.Resize.Offset(1).SpecialCells(12).Copy Sheets(2).[a65000].End(3).Offset(1)
.AutoFilter
End With
Next
Application.ScreenUpdating = 1
End Sub
 
Upvote 0
Em đã hiểu rồi đó là gộp chữ "96 hàng bông"
cám ơn anh rất nhiều.
Còn vấn đề ( giả sử em có thêm 2 hay nhiều sheet hơn nữa nhưng em chỉ cho tìm ở sheet 1, sheet 2, sheet 3 như trên. Còn các sheet khác thì làm việc khác thì em làm thế nào. )
anh giúp em nhé.
Thanks

Sửa lại code thế này thì bạn muôn thêm bao nhiêu sheet nữa tùy ý nhé

Sub gopdl()
Application.ScreenUpdating = 0
Dim dk1, dk2
Dim sh As Worksheet
dk1 = "96 h" & ChrW(224) & "ng" & " b" & ChrW(244) & "ng"
dk2 = "98 h" & ChrW(224) & "ng" & " b" & ChrW(244) & "ng"
Sheets("96 hangbong").[2:10000].Clear
Sheets("98 hangbong").[2:10000].Clear
For Each sh In Worksheets
If sh.Name <> "96 hangbong" Then
If sh.Name <> "98 hangbong" Then
sh.Select
With ActiveSheet.[a1].CurrentRegion
.AutoFilter 4, dk1
.Resize.Offset(1).SpecialCells(12).Copy Sheets("96 hangbong").[a65000].End(3).Offset(1)
.AutoFilter 4, dk2
.Resize.Offset(1).SpecialCells(12).Copy Sheets("98 hangbong").[a65000].End(3).Offset(1)
.AutoFilter
End With
End If
End If
Next
Application.ScreenUpdating = 1
End Sub
 
Upvote 0
Sửa lại code thế này thì bạn muôn thêm bao nhiêu sheet nữa tùy ý nhé

Sub gopdl()
Application.ScreenUpdating = 0
Dim dk1, dk2
Dim sh As Worksheet
dk1 = "96 h" & ChrW(224) & "ng" & " b" & ChrW(244) & "ng"
dk2 = "98 h" & ChrW(224) & "ng" & " b" & ChrW(244) & "ng"
Sheets("96 hangbong").[2:10000].Clear
Sheets("98 hangbong").[2:10000].Clear
For Each sh In Worksheets
If sh.Name <> "96 hangbong" Then
If sh.Name <> "98 hangbong" Then
sh.Select
With ActiveSheet.[a1].CurrentRegion
.AutoFilter 4, dk1
.Resize.Offset(1).SpecialCells(12).Copy Sheets("96 hangbong").[a65000].End(3).Offset(1)
.AutoFilter 4, dk2
.Resize.Offset(1).SpecialCells(12).Copy Sheets("98 hangbong").[a65000].End(3).Offset(1)
.AutoFilter
End With
End If
End If
Next
Application.ScreenUpdating = 1
End Sub

Anh ơi thế nếu dữ liệu của em lơn hơn 70000 dòng thì em làm thế nao hả anh. Bởi vì dữ liệu của em toàn lớn hơn 70000 dòng thôi .
Mà trên code của anh gửi thì em thấy chỉ khoảng 65000 dòng.
Em không dám hỏi một lúc sợ các anh thấy làm nhiều nên sẽ không giúp. Nên em mới hỏi từng phần anh ah.
Anh giúp em nhé.
Cám ơn anh nhiều.
 
Lần chỉnh sửa cuối:
Upvote 0
Anh ơi thế nếu dữ liệu của em lơn hơn 70000 dòng thì em làm thế nao hả anh. Bởi vì dữ liệu của em toàn lớn hơn 70000 dòng thôi .
Mà trên code của anh gửi thì em thấy chỉ khoảng 65000 dòng.
Em không dám hỏi một lúc sợ các anh thấy làm nhiều nên sẽ không giúp. Nên em mới hỏi từng phần anh ah.
Anh giúp em nhé.
Cám ơn anh nhiều.

Mình sử dụng 2003 nên chi có thể viết code 65536 là maximum rồi, nếu bạn sử dụng phiên bản excel mới thì có thể điều chỉnh những con số trong code cho phù hợp với thực tế

10000 có thể đổi thành con số khác lớn hơn
65000 cũng vậy

Thân
 
Upvote 0
Mình sử dụng 2003 nên chi có thể viết code 65536 là maximum rồi, nếu bạn sử dụng phiên bản excel mới thì có thể điều chỉnh những con số trong code cho phù hợp với thực tế

10000 có thể đổi thành con số khác lớn hơn
65000 cũng vậy

Thân
Cám ơn anh rất nhiều.
Em đành sửa thủ công kiểu đó vậy.
thế không có cách nào để chọn từ hàng thứ 2 đến hàng cuối cùng ah.
anh thử xem cấu trúc mảng có được không anh.
 
Upvote 0
Cám ơn anh rất nhiều.
Em đành sửa thủ công kiểu đó vậy.
thế không có cách nào để chọn từ hàng thứ 2 đến hàng cuối cùng ah.
anh thử xem cấu trúc mảng có được không anh.

Bạn không hiểu ý rồi.
Bạn sửa số là đã sửa code lại rồi. Chỉnh lại 1 lần là xài mãi mãi mà

Vì excel 2003 chỉ có 65536 dòng thôi, nếu viết code trên excel 2003 thì không thể sử dụng số lơn hơn 65536 được. Nếu bạn đang xài phiên bản mới thì sủa lại con số này, đâu có liên quan gì đén mảng.
 
Upvote 0
Bạn không hiểu ý rồi.
Bạn sửa số là đã sửa code lại rồi. Chỉnh lại 1 lần là xài mãi mãi mà

Vì excel 2003 chỉ có 65536 dòng thôi, nếu viết code trên excel 2003 thì không thể sử dụng số lơn hơn 65536 được. Nếu bạn đang xài phiên bản mới thì sủa lại con số này, đâu có liên quan gì đén mảng.

Không ý của em là:
Giả sử mình không cần quan tâm đến bảng tính đó có bao nhiêu dòng (tức là có bao nhiêu dữ liêu ở các dòng).em chỉ cần dữ dòng 1, dòng 2, dòng 3, dòng 4 của sheet đó. còn từ dòng thứ 5 trở xuống đến dòng cuối cùng của dữ liệu thì em xóa dữ liệu anh ah. vì vậy khi đó sẽ không cần chỉnh ố lớn hơn 65536 nữa anh ah
 
Upvote 0
Câu lênh:

Sheets("96 hangbong").[2:10000].Clear
Sheets("98 hangbong").[2:10000].Clear

Có nghĩa là xóa từ dòng 2 đến dòng 10.000, nếu bạn muốn xoa từ dòng thứ 5 thì thay số 2 thành số 5

Mình nghĩ dữ liệu mà nhiều hơn 65536 dòng chắc là máy tính sẽ bị treo thôi
 
Upvote 0
Mình theo dõi đề tài này và thử làm theo nhưng vẫn không được.
Mình có sheet tông hợp điểm, bây giờ muốn trích riêng những học sinh bị thi lại sang một sheet khác nhưng làm mã không được. Bác quanghai1969 giúp được không?
 
Lần chỉnh sửa cuối:
Upvote 0
Mình có sheet tông hợp điểm, bây giờ muốn trích riêng những học sinh bị thi lại sang một sheet khác nhưng làm mã không được. Bác quanghai1969 giúp được không?

Nhưng ở cột 'Z' (thi lại) có thấy mống nào đâu mà trích với chả lọc, hở bạn?

Bạn cho biết điều kiện như thế nào là thi lại cái đi!
 
Upvote 0
Mình theo dõi đề tài này và thử làm theo nhưng vẫn không được.
Mình có sheet tông hợp điểm, bây giờ muốn trích riêng những học sinh bị thi lại sang một sheet khác nhưng làm mã không được. Bác quanghai1969 giúp được không?
Mình không phải người được nhờ giúp, thấy khoái thì làm "thí thí", không được thì thôi vậy.
Có chỉnh sửa Học lực - Hạnh kiểm, Hạnh kiểm - Học lực cho đồng nhất, hổng biết có sao không?
Hên xui!
 

File đính kèm

Upvote 0
Mình không phải người được nhờ giúp, thấy khoái thì làm "thí thí", không được thì thôi vậy.
Có chỉnh sửa Học lực - Hạnh kiểm, Hạnh kiểm - Học lực cho đồng nhất, hổng biết có sao không?
Hên xui!
Thank bác nhiều. Tối nay có cái để thức nữa rồi.
 
Upvote 0
Bạn bố trí dữ liệu hơi phức tạp. Viết tạm thế này coi được không. Có gì thì tính tiếp. Mình sửa tạm vài hoc sinh bi thi lại ( X ở cột Z) cho dữ liệu chạy thử
 

File đính kèm

Upvote 0
Mình không phải người được nhờ giúp, thấy khoái thì làm "thí thí", không được thì thôi vậy.
Có chỉnh sửa Học lực - Hạnh kiểm, Hạnh kiểm - Học lực cho đồng nhất, hổng biết có sao không?
Hên xui!

Mình chuyển code vào file của mình thị nó cứ báo lỗi không biết tại sao nữa.
loi5.jpg
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom