Lọc theo điều kiện và copy sheet qua sheet (1 người xem)

  • Thread starter Thread starter 1986QV
  • Ngày gửi Ngày gửi

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

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ư
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!
 

File đính kèm

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!
Đọc xong không biết bạn muốn sao.
Tôi đọc kỹ rồi, có code rồi.
Rồi sao nữa?
 
Upvote 0
Em 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
 
Upvote 0
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
:) tạ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.
 
Upvote 0
:) tạ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.
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
 
Upvote 0
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
Đ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.
 
Upvote 0
Đ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.
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)
 
Upvote 0
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)
Em góp ý bác để bác coi xem bị lỗi ở đâu. em sai, bác thì sao. file đây bác.
 
Upvote 0
Em góp ý bác để bác coi xem bị lỗi ở đâu. em sai, bác thì sao. file đây bác.
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]
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
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]
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
 
Upvote 0
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
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.
Anh biết tính em mà, hỏi gì chứ. 1 bài trả lời ít nhất 2 lần mới xong.
 
Upvote 0
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".
Tác giả thấy trong code filter từ cột A:BT nên "hoảng lên", không xem kỹ dòng dưới.
Tui "bẻ cò" lại một chút thôi, còn lại là "rin" của quanghai1969.
-------------
................
1 bài trả lời ít nhất 2 lần mới xong.
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, ...
Sẽ sửa tiếp ít nhất 3 lần nữa
 
Lần chỉnh sửa cuối:
Upvote 0
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.
 
Upvote 0
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.

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
 
Upvote 0
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à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
 
Upvote 0
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
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.
 
Upvote 0
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.
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
 
Upvote 0
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
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ể.
Đừng chen ngang rồi topic chẳng ra làm sao. Vậy nha.
 
Upvote 0
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
Anh Quanghai1969 xem có phải sai dòng này k?

.AutoFilter
 
Upvote 0
Anh Quanghai1969 xem có phải sai dòng này k?

.AutoFilter
Chắc vậy quá. edit code trực tiếp không để ý
Sửa thử lại thế này
.Parent.AutoFilter
***
Hình như cũng không phải. Dạo này sinh tật không test code luôn.
Chắc vầy quá
.Usedrange.AutoFilter
 
Lần chỉnh sửa cuối:
Upvote 0
Nếu thay đó vao báo lỗi 438
nếu bỏ đi chạy ok lắm anh Quanghai1969coi.
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 òm
Vụ này phải đổ thừa anh Cò, tại anh Cò kêu trả về nguyên thủy nên mới sinh ra bệnh lung tung.
Thấy mọi người hay viết vầy chắc cùng được

.ShowAllData
 
Lần chỉnh sửa cuối:
Upvote 0
OK. Thanks anh Quang hai1969
 
Upvote 0

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

Back
Top Bottom