MinhNguyệt
Thành viên thường trực




- Tham gia
- 25/6/09
- Bài viết
- 213
- Được thích
- 403
Chào cả nhà!
Trong file đính kèm tại sheet DATA, căn cứ vào cột bộ phận, cột chức danh, tôi dùng code lọc danh mục duy nhất sang sheet "Tổng hợp nguồn nhân lực" để tính toán tổng hợp số liệu, các chỉ tiêu (theo như bảng biểu trong sheet "Tổng hợp nguồn nhân lực".
Phát sinh vấn đề sai lỗi, mình tìm mãi chẳng ra, như thế này:
- Cột Bộ phận tại sheet DATA, nếu lọc ra danh mục duy nhất thì phải là 38 bộ phận. Không hiểu tại sao, code này chỉ lọc ra được 33 bộ phận (thiếu mất 5 bộ phận), nhưng khi ta gõ thêm những ký tự bất kỳ vào những dòng trống dưới cùng của cột bộ phận tại sheet DATA thì lúc này nó lại lọc đủ ra 38 bộ phận.
- Tương tự trường hợp trên: Cột Chức danh tại sheet DATA, nếu lọc ra danh mục duy nhất thì phải là 19 chức danh. Không hiểu tại sao, code này chỉ lọc ra được 14 bộ phận (thiếu mất 5 chức danh)...
Nhờ các bác nghiên cứu, xem xét (file gửi kèm)!
Cảm ơn các bác nhiều!
Bạn trừ mất 5 dòng thì hỏi làm sao ra 38 được? Sửa lại như sau :
PHP:
Sub TaoBoPhan()
Dim BoPhan As Range
S01.Select
On Error Resume Next
S01.ShowAllData
Range("HH3:HH1000").Clear
eR = Range("D10000").End(xlUp).Row
Set BoPhan = S01.Range("D3:D" & eR)
With S01
With BoPhan
.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=S01.Range( _
"HH3"), Unique:=True
End With
.Names("Extract").Delete
eR1 = .Range("HH1000").End(xlUp).Row
S17.Range("A7:B55").ClearContents
S17.Range("B7:B" & eR1 + 4).Value = .Range("HH3:HH" & eR1).Value
S17.Range("A7:A" & eR1 + 4).FormulaR1C1 = "=ROW()-6"
S17.Range("A7:A" & eR1 + 4).Value = S17.Range("A7:A" & eR1 + 4).Value
.Range("HH3:HH" & eR1).Clear
End With
Set BoPhan = Nothing
End Sub
Nói cho rõ thêm : Cột HH của S01 bạn tính từ hàng thứ 3, cột A và B của S17 bạn tính bắt đầu từ hàng thứ 7, vì thế phải lấy eR1+4 là vì thế
Thân
Lần chỉnh sửa cuối: