1986QV
Thành viên hoạt động



- Tham gia
- 15/5/12
- Bài viết
- 114
- Được thích
- 6
- Nghề nghiệp
- Kỹ sư



Đọc xong không biết bạn muốn sao.Bài toán đặt ra là có các dãy số chữ hỗn hợp, Lọc thoải điều kiện BS=BT= 4, hoặc 5,hoặc 6
copy sheet1 qua sheet 2. Được kết quả như file. Mọi người coi kỹ và có Code chạy VBA chính xác với bài toán này.
Cảm ơn GPE!




Mình đọc vào thì hiểu ngay ý bạn muốn lọc ra 3 nhóm: 4,5 và 6. Nhưng tại cách bạn diễn tả kỳ quá mà. Chỉ là bài toán lọc thôi, dùng autofilter cũng xong, code chi cho mệt nãoEm nói có sai. Bác hay đùa. ý nhờ các bác viết code cho bài toán này.
Cảm ơn bác quan tâm.



Mình đọc vào thì hiểu ngay ý bạn muốn lọc ra 3 nhóm: 4,5 và 6. Nhưng tại cách bạn diễn tả kỳ quá mà. Chỉ là bài toán lọc thôi, dùng autofilter cũng xong, code chi cho mệt não




Muốn code thì cho codetại nếu có Code để nó nhanh hơn chút. nếu dùng ấn tay cũng mất chút times. nên đành nhờ các bác GPE vậy.
Sub abc()
Dim i, C
C = 1
For i = 1 To 3
With Sheet1
.[A3:BT10000].AutoFilter 71, i + 3
.[A3:BT10000].AutoFilter 72, i + 3
.[A3:B10000].SpecialCells(12).Copy Sheet2.Cells(2, C)
End With
C = C + 3
Next
End Sub



Đoạn này của bác lọc cả phần ở C:BR vào. hiểu bác kiểm tra lại giúp em.Muốn code thì cho code
PHP:Sub abc() Dim i, C C = 1 For i = 1 To 3 With Sheet1 .[A3:BT10000].AutoFilter 71, i + 3 .[A3:BT10000].AutoFilter 72, i + 3 .[A3:B10000].SpecialCells(12).Copy Sheet2.Cells(2, C) End With C = C + 3 Next End Sub




Nếu thấy code không đúng thì thôi đừng xài.Đoạn này của bác lọc cả phần ở C:BR vào. hiểu bác kiểm tra lại giúp em.



Em góp ý bác để bác coi xem bị lỗi ở đâu. em sai, bác thì sao. file đây bác.Nếu thấy code không đúng thì thôi đừng xài.
Có điều làm sao code có thể lấy được cái vùng từ C đến BR
Nếu có thể đọc code thì nhìn chỗ này: .[A3:B10000].SpecialCells(12).Copy Sheet2.Cells(2, C)
Kết quả chạy code của Quang Hải giống hệt kết quả bạn muốn có.Em góp ý bác để bác coi xem bị lỗi ở đâu. em sai, bác thì sao. file đây bác.
1) Sao không cho i = 4 to 6 luôn nhỉ ??? cho bằng 1 tới 3 rồi lại........cộng 3.Kết quả chạy code của Quang Hải giống hệt kết quả bạn muốn có.
Ý bạn là sao?
Hay sửa code lại như vầy cho dễ hiểu:
[GPECODE=vb]Sub abc()
Dim i, C
C = 1
For i = 1 To 3
With Sheet1
.[BS2:BT10000].AutoFilter 1, i + 3
.[BS2:BT10000].AutoFilter 2, i + 3
.[A3:B10000].SpecialCells(12).Copy Sheet2.Cells(2, C)
End With
C = C + 3
Next
End Sub[/GPECODE]







Bởi vậy cho nên đến giờ này mới chỉ có 2534 bài viết. Viết như anh đợi tới cóc mọc râu chưa lên sao.1) Sao không cho i = 4 to 6 luôn nhỉ ??? cho bằng 1 tới 3 rồi lại........cộng 3.
2) Dùng Filter rồi thì làm ơn trả lại hiện trường ban đầu chứ nhỉ ???
Híc
Code đó của quanghai1969 mà "đại ca".1) Sao không cho i = 4 to 6 luôn nhỉ ??? cho bằng 1 tới 3 rồi lại........cộng 3.
2) Dùng Filter rồi thì làm ơn trả lại hiện trường ban đầu chứ nhỉ ???
Híc
Nếu lọc 3 con số thì filter - copy -paste 3 lần, nếu lọc 1 - 10 thì 10 lần, ... hihi, ...................
1 bài trả lời ít nhất 2 lần mới xong.



Kết quả chạy code của Quang Hải giống hệt kết quả bạn muốn có.
Ý bạn là sao?
Hay sửa code lại như vầy cho dễ hiểu:
[GPECODE=vb]Sub abc()
Dim i, C
C = 1
For i = 1 To 3
With Sheet1
.[BS2:BT10000].AutoFilter 1, i + 3
.[BS2:BT10000].AutoFilter 2, i + 3
.[A3:B10000].SpecialCells(12).Copy Sheet2.Cells(2, C)
End With
C = C + 3
Next
End Sub[/GPECODE]




Code em chỉnh sửa chút để lấy các giá trị lọc 3,4,5 mà chỉ lấy được giá trị 3,4 mà giá trị 5 không lấy là sao.
Sub abc()
Dim i, C
C = 1
For i = 1 To 2
With Sheet1
.[BS2:BT10000].AutoFilter 1, i + 2
.[BS2:BT10000].AutoFilter 2, i + 2
.[A3:B10000].SpecialCells(12).Copy Sheet2.Cells(2, C)
End With
C = C + 2
Next
End Sub
Các bác xem lỗi ở đâu chỉ giúp em.
Sub abc()
Dim i, C
C = 1
For i = 3 To 5
With Sheet1
.[BS2:BT10000].AutoFilter 1, i
.[BS2:BT10000].AutoFilter 2, i
.[A3:B10000].SpecialCells(12).Copy Sheet2.Cells(2, C)
.AutoFilter
End With
C = C + 2
Next
End Sub


Chào AnhPHP:Sub abc() Dim i, C C = 1 For i = 3 To 5 With Sheet1 .[BS2:BT10000].AutoFilter 1, i .[BS2:BT10000].AutoFilter 2, i .[A3:B10000].SpecialCells(12).Copy Sheet2.Cells(2, C) .AutoFilter End With C = C + 2 Next End Sub




Chịu khó tìm mấy topic VBA cơ bản mà học, chứ trụi lủi kiến thức VBA thì giảng kiểu gì cũng không hiểu. Mà cái tật của mình thì không giải thích.Chào Anh
Lần đầu tham gia GPE em thấy file này hay nhưng không biết bài toán này làm cái gì
Anh co thể giải thích nội dung cho em biết để tham khảo thêm
Cám ơn anh nhiều


Cám ơn anhChịu khó tìm mấy topic VBA cơ bản mà học, chứ trụi lủi kiến thức VBA thì giảng kiểu gì cũng không hiểu. Mà cái tật của mình thì không giải thích.




Bạn cần gì thì mở 1 topic rõ ràng, đính kèm file đủ thông tin cần thiết sẽ có người trợ giúp nếu có thể.Cám ơn anh
Anh cho em hỏi thêm được không
Hiện tại bài này qui định lộc điều kiện mặt định là 4,5,6
không biết mình có thể để điều kiện ở 1 ô nào đó rồi dùng list chọn xong thì nó loc


em chĩ hỏi thêm 1 chút vậy thôiBạn cần gì thì mở 1 topic rõ ràng, đính kèm file đủ thông tin cần thiết sẽ có người trợ giúp nếu có thể.
Đừng chen ngang rồi topic chẳng ra làm sao. Vậy nha.



Anh Quanghai1969 xem có phải sai dòng này k?PHP:Sub abc() Dim i, C C = 1 For i = 3 To 5 With Sheet1 .[BS2:BT10000].AutoFilter 1, i .[BS2:BT10000].AutoFilter 2, i .[A3:B10000].SpecialCells(12).Copy Sheet2.Cells(2, C) .AutoFilter End With C = C + 2 Next End Sub




Chắc vậy quá. edit code trực tiếp không để ýAnh Quanghai1969 xem có phải sai dòng này k?
.AutoFilter




Xem lại bài 24. Nếu bỏ hẳn thì sau khi kết thúc code bảng tính sẽ còn bị chế độ autofilter xấu òmNếu thay đó vao báo lỗi 438
nếu bỏ đi chạy ok lắm anh Quanghai1969coi.