Ếch Xanh
Thành viên tích cực
- Tham gia
- 12/8/09
- Bài viết
- 865
- Được thích
- 1,572
Mình đã làm ví dụ này ("Hơi nâng cao chút" - có ít kiến thức chưa học), nếu ai muốn tham khảo thêm hãy xem nhé!
(Buổi tối rảnh nên làm cho vui thôi. Hi..........!)
Có file đính kèm.PHP:Option Explicit Sub TinhTong() Dim Ham Dim rngVung As Range Dim eRw As Long Const a = "Cong" eRw = [I65500].End(xlUp).Row Set rngVung = Range([I5], Cells(eRw, "I")) Set Ham = Application.WorksheetFunction If Ham.Sum(rngVung) = 2 * Cells(eRw, "I") Then MsgBox "Da cong roi!" Else Cells(eRw + 1, "I").Value = Ham.Sum(rngVung) Cells(eRw + 1, "I").NumberFormat = "_(* #,##0_);_(* (#,##0);""""" Cells(eRw + 1, "I").Font.Bold = True Cells(eRw + 1, "I").Offset(, -4).Value = a Cells(eRw + 1, "I").Offset(, -4).Font.Bold = True End If End Sub
Sub bạn tạo ra cũng khá sáng tạo, tôi chưa nói là đúng hay sai, tuy nhiên nhìn vào code tôi có vài điểm cần nói:
1) Nếu Conts a = "Cong" chỉ dùng 1 lần duy nhất, thì không cần thiết phải dùng hằng số làm gì
2) Nếu vùng nào, lệnh nào lặp đi lặp lại liên tục, bạn chuyển sang With ... End With cho gọn gàng và sáng câu lệnh.
Mạn phép điều chỉnh lại Code của bạn chút xíu đây:
PHP:
Option Explicit
Sub TinhTong()
Dim Ham
Dim rngVung As Range
Dim eRw As Long
eRw = [I65500].End(xlUp).Row
Set rngVung = Range([I5], Cells(eRw, "I"))
Set Ham = Application.WorksheetFunction
If Ham.Sum(rngVung) = 2 * Cells(eRw, "I") Then
MsgBox "Da cong roi!"
Else
With Cells(eRw + 1, "I")
.Value = Ham.Sum(rngVung)
.NumberFormat = "_(* #,##0_);_(* (#,##0);"""""
.Font.Bold = True
.Offset(, -4).Value = "Cong"
.Offset(, -4).Font.Bold = True
End With
End If
End Sub