Lọc dữ liệu và xuất sang các sheets

Liên hệ QC

thanhduan2407

Thành viên mới
Tham gia
22/9/08
Bài viết
15
Được thích
2
Em chào các anh chị trên diễn đàn. Sắp đến Tết rồi em chúc các anh chị sức khoẻ, niềm vui và hạnh phúc. Chúc diễn đàn ngày càng phát triển và có nhiều đóng góp cho xã hội ngày càng phát triển hơn.
Em cũng đang nghiên cứu lập trình VBA nhưng vẫn còn mơ hồ về cái này. Em có 1 bản Excel : http://www.mediafire.com/?tt0kbjkdm2q6y6o
Trong cột "CaseType" có 6 phần tử là SO, SW,SS, US, UW, UO. Em nhờ các anh chị trong diễn đàn có thể giúp em viết mã Code cho chương trình để làm sao cho mỗi sheet chứa 1 phần tử. Trong file em gửi thì em đã lọc fillter thủ công nên rất lâu. Các anh chị có thể giúp em nếu có n phần tử (cũng không nhiều) thì nó sẽ tạo ra n sheet, mỗi sheet chứa những số liệu đi kèm theo phần tử (như file em đã gửi). Em đang rất cần sự giúp đỡ. Cám ơn các anh chị rất nhiều.
 
Em rất đang cần cái này các anh chị ah. Tạm thời các anh chị có thể giúp em lọc 6 phần tử trên được không ạ? Cảm ơn các anh chị rất nhiều
 
Upvote 0
Hic. Các bác không ai giúp em với sao? Em chờ tin các bác
 
Upvote 0
Em chào các anh chị trên diễn đàn. Sắp đến Tết rồi em chúc các anh chị sức khoẻ, niềm vui và hạnh phúc. Chúc diễn đàn ngày càng phát triển và có nhiều đóng góp cho xã hội ngày càng phát triển hơn.
Em cũng đang nghiên cứu lập trình VBA nhưng vẫn còn mơ hồ về cái này. Em có 1 bản Excel : http://www.mediafire.com/?tt0kbjkdm2q6y6o
Trong cột "CaseType" có 6 phần tử là SO, SW,SS, US, UW, UO. Em nhờ các anh chị trong diễn đàn có thể giúp em viết mã Code cho chương trình để làm sao cho mỗi sheet chứa 1 phần tử. Trong file em gửi thì em đã lọc fillter thủ công nên rất lâu. Các anh chị có thể giúp em nếu có n phần tử (cũng không nhiều) thì nó sẽ tạo ra n sheet, mỗi sheet chứa những số liệu đi kèm theo phần tử (như file em đã gửi). Em đang rất cần sự giúp đỡ. Cám ơn các anh chị rất nhiều.
Dạng bài này đã từng có người hỏi rồi! Xem bài tương tự này nhé:
http://www.giaiphapexcel.com/forum/...hạy-qua-Sheet-2A1-2A2-...&p=203131#post203131
 
Upvote 0
Dạng bài này đã từng có người hỏi rồi! Xem bài tương tự này nhé:
http://www.giaiphapexcel.com/forum/...hạy-qua-Sheet-2A1-2A2-...&p=203131#post203131
Lở viết code, thôi thì up lên vậy.
PHP:
Sub TrichXuat()
With Application
  .Calculation = xlCalculationManual
End With
Dim endR As Long, i As Long, s As Long, k As Long, iSh As Long, shName As String
Dim ArrData(), ArrSh(), ArrKQ()
ArrSh = Array("SO", "SW", "SS", "UO", "UW", "US")
With Sheets("Element Forces - Frames")
  endR = .Cells(65000, 1).End(xlUp).Row
  ArrData = .Range("A6:L" & endR).Value
End With
For iSh = 0 To UBound(ArrSh)
  shName = ArrSh(iSh): s = 0
  ReDim ArrKQ(1 To endR, 1 To 12)
  For i = 1 To UBound(ArrData)
    If ArrData(i, 4) = ArrSh(iSh) Then
      s = s + 1
      For k = 1 To 12
        ArrKQ(s, k) = ArrData(i, k)
      Next k
    End If
  Next i
  If s > 0 Then
    With Sheets(shName)
      .[A2].Resize(s, 12) = ArrKQ
    End With
  End If
Next iSh
Erase ArrData(), ArrSh(), ArrKQ()
With Application
  .Calculation = xlCalculationAutomatic
End With
End Sub
Lâu lâu không viết h viết thấy khựng.
 
Upvote 0
Em chào bác ndu96081631.
Em có rất nhiều bản Excel như vậy. Nhưng nếu mỗi khi copy mã Code sang 1 bản Excel khác thì mình lại phải tạo các sheet khác và thay tên thì chương trình mới chạy. Bác có thể chỉnh sửa cho em sao cho khi mình tìm kiếm theo mảng Array("SS", "SO", "SW", "UO", "UW", "US" .....) thì hàm sẽ tự động tìm kiếm trong cột "CaseType" và tạo ra các sheet mới tương đương với mảng mình đưa ra. Em sử dụng chương trình thấy phải rename sheet thì mới được. Nếu trong mảng mình đưa ra mà tìm kiếm trong cột "CaseType" mà không tìm thấy thì sẽ báo lỗi không tìm thấy. Bác có thể giúp em chỉnh sửa lại sao cho không tạo sheet mới và thay tên sheet mà chương trình vẫn chạy được. Hic. Chắc em yêu cầu hơi quá cao. Mong bác thông cảm, người ta lại nói được voi đòi "Hai Bà Trưng". Cảm ơn bác rất nhiều
 
Lần chỉnh sửa cuối:
Upvote 0
Em chào bác ndu96081631.
Em có rất nhiều bản Excel như vậy. Nhưng nếu mỗi khi copy mã Code sang 1 bản Excel khác thì mình lại phải tạo các sheet khác và thay tên thì chương trình mới chạy. Bác có thể chỉnh sửa cho em sao cho khi mình tìm kiếm theo mảng Array("SS", "SO", "SW", "UO", "UW", "US" .....) thì hàm sẽ tự động tìm kiếm trong cột "CaseType" và tạo ra các sheet mới tương đương với mảng mình đưa ra. Em sử dụng chương trình thấy phải rename sheet thì mới được. Nếu trong mảng mình đưa ra mà tìm kiếm trong cột "CaseType" mà không tìm thấy thì sẽ báo lỗi không tìm thấy. Bác có thể giúp em chỉnh sửa lại sao cho không tạo sheet mới và thay tên sheet mà chương trình vẫn chạy được. Hic. Chắc em yêu cầu hơi quá cao. Mong bác thông cảm, người ta lại nói được voi đòi "Hai Bà Trưng". Cảm ơn bác rất nhiều
Tôi chưa hiểu ý bạn về việc Rename gì gì đó. Tuy nhiên bạn xem file đính kèm dưới đây nhé
Cách dùng:
- Bấm nút Run code
- Một InputBox hiện ra, bạn quét chọn toàn bộ dử liệu (như trong file là A5:L33485)
- Một InputBox nữa hiện ra, bạn đặt con trỏ chuột vào 1 cell tại cột mà bạn muốn lọc (như trong file, chỉ cần bạn chọn 1 cell trong cột D)
- Bấm OK và chờ xem kết quả
Download file: http://www.mediafire.com/?mmgud7oncup3spa
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bác nhiều. Đúng là trên cả tuyệt vời. Em cảm ơn bác nhiều lắm
 
Upvote 0
Web KT
Back
Top Bottom