hoangfe3o4
Thành viên mới
- Tham gia
- 12/8/14
- Bài viết
- 41
- Được thích
- 4
Gần đúng r bác ạ.Bạn thử xem đúng không nhé.
Bạn xem nhé.Gần đúng r bác ạ.
Cái cột Lớp lỗi bác ơi nó không hiện tên lớp mà hiện "Ngày sinh"
Bác có thể thêm điều kiện là chỉ hiển thị những học sinh có nợ điểm được không ạ?
Sub TONGHOP()
Application.ScreenUpdating = False
Dim arr, arr1(1 To 1000, 1 To 11), lr As Long, sh As Worksheet, lr1 As Long, tong As Worksheet, i As Long, j As Long, a As Long
Set tong = Sheets("tong hop")
lr1 = tong.Range("A" & Rows.Count).End(xlUp).Row
If lr1 > 2 Then tong.Range("a3:K" & lr1).ClearContents
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> "TONG HOP" And sh.Name <> "CTK DL1T" Then
lr = sh.Range("B" & Rows.Count).End(xlUp).Row
If lr > 6 Then
arr = sh.Range("b7:L" & lr).Value
For i = 1 To UBound(arr)
If arr(i, 11) <> Empty Then
a = a + 1
For j = 1 To 11
arr1(a, j) = arr(i, j)
Next j
End If
Next i
End If
End If
Next
tong.Range("A3:K3").Resize(a).Value = arr1
Application.ScreenUpdating = True
End Sub
Đúng r bác ạ.Bạn xem nhé.
Mã:Sub TONGHOP() Application.ScreenUpdating = False Dim arr, arr1(1 To 1000, 1 To 11), lr As Long, sh As Worksheet, lr1 As Long, tong As Worksheet, i As Long, j As Long, a As Long Set tong = Sheets("tong hop") lr1 = tong.Range("A" & Rows.Count).End(xlUp).Row If lr1 > 2 Then tong.Range("a3:K" & lr1).ClearContents For Each sh In ThisWorkbook.Worksheets If sh.Name <> "TONG HOP" And sh.Name <> "CTK DL1T" Then lr = sh.Range("B" & Rows.Count).End(xlUp).Row If lr > 6 Then arr = sh.Range("b7:L" & lr).Value For i = 1 To UBound(arr) If arr(i, 11) <> Empty Then a = a + 1 For j = 1 To 11 arr1(a, j) = arr(i, j) Next j End If Next i End If End If Next tong.Range("A3:K3").Resize(a).Value = arr1 Application.ScreenUpdating = True End Sub
Em định vận dụng công thức của bác vào nhiều loại nữa nên nhưng xem công thức của bác thì em không hiểu thay thế cái cột mà chỉ nhận giá trị khác rỗng như thế nào. Ví dụ công thức ở trên thì chỉ nhận giá trị khác rỗng ở cột Tổng hợp nợ điểm tức là cột L. Vậy nếu e muốn công thức chỉ nhận giá trị khác rỗng ở cột khác như cột K chẳng hạn thì làm thế nào ạ?Bạn xem nhé.
Mã:Sub TONGHOP() Application.ScreenUpdating = False Dim arr, arr1(1 To 1000, 1 To 11), lr As Long, sh As Worksheet, lr1 As Long, tong As Worksheet, i As Long, j As Long, a As Long Set tong = Sheets("tong hop") lr1 = tong.Range("A" & Rows.Count).End(xlUp).Row If lr1 > 2 Then tong.Range("a3:K" & lr1).ClearContents For Each sh In ThisWorkbook.Worksheets If sh.Name <> "TONG HOP" And sh.Name <> "CTK DL1T" Then lr = sh.Range("B" & Rows.Count).End(xlUp).Row If lr > 6 Then arr = sh.Range("b7:L" & lr).Value For i = 1 To UBound(arr) If arr(i, 11) <> Empty Then a = a + 1 For j = 1 To 11 arr1(a, j) = arr(i, j) Next j End If Next i End If End If Next tong.Range("A3:K3").Resize(a).Value = arr1 Application.ScreenUpdating = True End Sub
Bạn xem câu điều kiện này nhé.Em định vận dụng công thức của bác vào nhiều loại nữa nên nhưng xem công thức của bác thì em không hiểu thay thế cái cột mà chỉ nhận giá trị khác rỗng như thế nào. Ví dụ công thức ở trên thì chỉ nhận giá trị khác rỗng ở cột Tổng hợp nợ điểm tức là cột L. Vậy nếu e muốn công thức chỉ nhận giá trị khác rỗng ở cột khác như cột K chẳng hạn thì làm thế nào ạ?
If arr(i, 11) <> Empty Then
Vâng ạ. Em cám ơn bác nhiều ạ! Chúc bác tuần mới nhiều niềm vui mới!Bạn xem câu điều kiện này nhé.Cái số 11 bạn muốn sửa thành cột nào đó thì chỉnh nó.Mã:If arr(i, 11) <> Empty Then
Xin lỗi vì lại phải làm phiền bác. Em đang vướng ở cái sheet " Danh sách full" làm sao để cập nhật tất cả danh sách( cả những học sinh bị gạch). Bác giúp em với ạ.Bạn xem câu điều kiện này nhé.Cái số 11 bạn muốn sửa thành cột nào đó thì chỉnh nó.Mã:If arr(i, 11) <> Empty Then
Bạn xem nhé.Xin lỗi vì lại phải làm phiền bác. Em đang vướng ở cái sheet " Danh sách full" làm sao để cập nhật tất cả danh sách( cả những học sinh bị gạch). Bác giúp em với ạ.
Bài đã được tự động gộp:
Xin lỗi vì lại phải làm phiền bác. Em đang vướng ở cái sheet " Danh sách full" làm sao để cập nhật tất cả danh sách( cả những học sinh bị gạch). Bác giúp em với ạ.
ý của e là danh sách full nhận toàn bộ danh sách học sinh của các sheet khác ạ.Bạn xem nhé.
Bạn xem cái này.ý của e là danh sách full nhận toàn bộ danh sách học sinh của các sheet khác ạ.
Sub TONGHOPfull()
Application.ScreenUpdating = False
Dim arr, arr1(1 To 1000, 1 To 12), lr As Long, sh As Worksheet, lr1 As Long, tong As Worksheet, i As Long, j As Long, a As Long
Set tong = Sheets("DANH SACH FULL")
lr1 = tong.Range("B" & Rows.Count).End(xlUp).Row
If lr1 > 2 Then tong.Range("b3:M" & lr1).ClearContents
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> "tong hop no diem" And sh.Name <> "DS HSSV " And sh.Name <> "TONG KET" And sh.Name <> "DS lop" And sh.Name <> "DANH SACH FULL" And sh.Name <> "HUONG DAN" And sh.Name <> "DIEM DANH" And sh.Name <> "Cac tinh nang" And sh.Name <> "TEN LOP" And sh.Name <> "Mau" Then
lr = sh.Range("B" & Rows.Count).End(xlUp).Row
If lr > 6 Then
arr = sh.Range("b7:N" & lr).Value
For i = 1 To UBound(arr)
'If arr(i, 12) <> Empty Or sh.Range("b" & i + 6).Font.Strikethrough = True Then
a = a + 1
arr1(a, 1) = a
For j = 2 To 9
arr1(a, j) = arr(i, j - 1)
Next j
'End If
Next i
End If
End If
Next
lr = tong.Range("B" & Rows.Count).End(xlUp).Row
If lr > 2 Then tong.Range("a3: I " & lr).ClearContents
tong.Range("A3:i3").Resize(a).Value = arr1
Application.ScreenUpdating = True
End Sub
Bạn xem cái này.
[/CODE]
Bạn chỉnh cái này.Cho em hỏi: Sau khi e áp dụng các công thức của bác được các file: DS HSSV, DANH SÁCH FULL, TONG HOP NO DIEM. Lúc đầu thì sử dụng được nhưng mỗi khi thêm sheet lớp hoặc tắt đi mở lại nó lại lỗi như thế này(k biết có phải xung đột công thức không ạ?)
Bài đã được tự động gộp:
như file ban đầu này lại không việc gì, nhưng thêm sheet lớp 51O2T lại lỗi trên ạ.
arr1(1 To 67, 1 To 126) thành arr1(1 To 10000, 1 To 126)
Em cám ơn bác nhiều ạ. Chúc bác và gia đình luôn mạnh khỏe, vui vẻ, hạnh phúc.Bạn chỉnh cái này.Mã:arr1(1 To 67, 1 To 126) thành arr1(1 To 10000, 1 To 126)
Nhờ bác giúp tiếp ạ:Bạn chỉnh cái này.Mã:arr1(1 To 67, 1 To 126) thành arr1(1 To 10000, 1 To 126)
Bác cho e hỏi: ở trên e lấy dữ liệu từ cột B đến cột N nhưngBạn xem cái này.
Mã:Sub TONGHOPfull() Application.ScreenUpdating = False Dim arr, arr1(1 To 1000, 1 To 12), lr As Long, sh As Worksheet, lr1 As Long, tong As Worksheet, i As Long, j As Long, a As Long Set tong = Sheets("DANH SACH FULL") lr1 = tong.Range("B" & Rows.Count).End(xlUp).Row If lr1 > 2 Then tong.Range("b3:M" & lr1).ClearContents For Each sh In ThisWorkbook.Worksheets If sh.Name <> "tong hop no diem" And sh.Name <> "DS HSSV " And sh.Name <> "TONG KET" And sh.Name <> "DS lop" And sh.Name <> "DANH SACH FULL" And sh.Name <> "HUONG DAN" And sh.Name <> "DIEM DANH" And sh.Name <> "Cac tinh nang" And sh.Name <> "TEN LOP" And sh.Name <> "Mau" Then lr = sh.Range("B" & Rows.Count).End(xlUp).Row If lr > 6 Then arr = sh.Range("b7:N" & lr).Value For i = 1 To UBound(arr) 'If arr(i, 12) <> Empty Or sh.Range("b" & i + 6).Font.Strikethrough = True Then a = a + 1 arr1(a, 1) = a For j = 2 To 9 arr1(a, j) = arr(i, j - 1) Next j 'End If Next i End If End If Next lr = tong.Range("B" & Rows.Count).End(xlUp).Row If lr > 2 Then tong.Range("a3: I " & lr).ClearContents tong.Range("A3:i3").Resize(a).Value = arr1 Application.ScreenUpdating = True End Sub
DIỄN ĐÀN GIẢI PHÁP EXCEL