Hàm Sum nhiều tính năng (2 người xem)

Liên hệ QC

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

hoangdanh282vn

Nguyễn Cảnh Hoàng Danh
Thành viên danh dự
Tham gia
21/12/07
Bài viết
1,902
Được thích
5,303
Nghề nghiệp
Kinh doanh các mặt hàng văn phòng phẩm
Mình gửi đến các bạn vài hàm Sum tự tạo nhằm đa dạng hóa tính năng cộng của hàm Sum

Đầu tiên là hàm SumType :
Chức năng :
- Cộng các ô có chứa hay không chứa công thức.
- Cộng các ô có hay không có màu nền
- Cộng các ô có hay không có màu Font chữ
- Cộng các ô có hay không có Font chữ in đậm
- Bỏ qua các ô bị lỗi khi cộng
PS : Xem hàm Sumpower ở bài #5 với nhiều tính năng hơn
PHP:
Public Function SumType(TypeFunc As Byte, Opt As Boolean, Rng1 As Range, _
      Optional Rng2 As Range, Optional Rng3 As Range, Optional Rng4 As Range, _
      Optional Rng5 As Range) As Double
Dim Cell As Range, SumT As Double
For Each Cell In Rng1
If Not IsError(Cell) Then
    If IsNumeric(Cell) Then
    Select Case TypeFunc
    Case 1 'cong cac cell dang value hay formula.'
        If Cell.HasFormula = Opt Then SumT = SumT + Cell
    Case 2 'cong cac cell co mau hay khong co mau nen.'
        If Cell.Interior.ColorIndex > 0 = Opt Then SumT = SumT + Cell
    Case 3 'cong cac cell co mau hay khong co mau font chu.'
        If Cell.Font.ColorIndex > 0 = Opt Then SumT = SumT + Cell
    Case 4 'cong cac cell co hay khong co font in dam.'
        If Cell.Font.Bold = Opt Then SumT = SumT + Cell
    End Select
    End If
End If
Next
'---------------------------------------------------------------------'
If Not Rng2 Is Nothing Then
For Each Cell In Rng2
If Not IsError(Cell) Then
    If IsNumeric(Cell) Then
    Select Case TypeFunc
    Case 1 'cong cac cell dang value hay formula.'
        If Cell.HasFormula = Opt Then SumT = SumT + Cell
    Case 2 'cong cac cell co mau hay khong co mau nen.'
        If Cell.Interior.ColorIndex > 0 = Opt Then SumT = SumT + Cell
    Case 3 'cong cac cell co mau hay khong co mau font chu.'
        If Cell.Font.ColorIndex > 0 = Opt Then SumT = SumT + Cell
    Case 4 'cong cac cell co hay khong co font in dam.'
        If Cell.Font.Bold = Opt Then SumT = SumT + Cell
    End Select
    End If
End If
Next
End If
'---------------------------------------------------------------------'
If Not Rng3 Is Nothing Then
For Each Cell In Rng3
If Not IsError(Cell) Then
    If IsNumeric(Cell) Then
    Select Case TypeFunc
    Case 1 'cong cac cell dang value hay formula.'
        If Cell.HasFormula = Opt Then SumT = SumT + Cell
    Case 2 'cong cac cell co mau hay khong co mau nen.'
        If Cell.Interior.ColorIndex > 0 = Opt Then SumT = SumT + Cell
    Case 3 'cong cac cell co mau hay khong co mau font chu.'
        If Cell.Font.ColorIndex > 0 = Opt Then SumT = SumT + Cell
    Case 4 'cong cac cell co hay khong co font in dam.'
        If Cell.Font.Bold = Opt Then SumT = SumT + Cell
    End Select
    End If
End If
Next
End If
'---------------------------------------------------------------------.'
If Not Rng4 Is Nothing Then
For Each Cell In Rng4
If Not IsError(Cell) Then
    If IsNumeric(Cell) Then
    Select Case TypeFunc
    Case 1 'cong cac cell dang value hay formula.'
        If Cell.HasFormula = Opt Then SumT = SumT + Cell
    Case 2 'cong cac cell co mau hay khong co mau nen.'
        If Cell.Interior.ColorIndex > 0 = Opt Then SumT = SumT + Cell
    Case 3 'cong cac cell co mau hay khong co mau font chu.'
        If Cell.Font.ColorIndex > 0 = Opt Then SumT = SumT + Cell
    Case 4 'cong cac cell co hay khong co font in dam.'
        If Cell.Font.Bold = Opt Then SumT = SumT + Cell
    End Select
    End If
End If
Next
End If
'---------------------------------------------------------------------.'
If Not Rng5 Is Nothing Then
For Each Cell In Rng5
If Not IsError(Cell) Then
    If IsNumeric(Cell) Then
    Select Case TypeFunc
    Case 1 'cong cac cell dang value hay formula.'
        If Cell.HasFormula = Opt Then SumT = SumT + Cell
    Case 2 'cong cac cell co mau hay khong co mau nen.'
        If Cell.Interior.ColorIndex > 0 = Opt Then SumT = SumT + Cell
    Case 3 'cong cac cell co mau hay khong co mau font chu.'
        If Cell.Font.ColorIndex > 0 = Opt Then SumT = SumT + Cell
    Case 4 'cong cac cell co hay khong co font in dam.'
        If Cell.Font.Bold = Opt Then SumT = SumT + Cell
    End Select
    End If
End If
Next
End If
SumType = SumT
End Function
 

File đính kèm

Lần chỉnh sửa cuối:
Trong trường hợp dùng hàm sum tự tạo như của bạn. Nếu sang một máy khác để in mà không có addin hàm tự tạo đó thì kết quả có bị thay đổi không? Nhờ bạn chỉ giúp.
Chắc chắn là kết quả bị thay đổi, bạn có thể khắc fục theo 2 hướng
1/ Máy khác cũng fãi được cài Add-in này
2/ Chép code của Add-in vào file có sử dụng hàm tự tạo đó
 
Upvote 0
chào các bác,
Em thấy hàm của các bác hay quá nhưng em lại ko chỉ cần tổng của các ô cùng màu nền mà còn cần dung các ô này nhân với 1 giá trị của cột bên cạnh rồi mới cộng nhu ham sumproduct (bang của em có rất nhiều dòng và cột do có nhiều chi tiết nên tạo thêm cột mới để nhân trc rất lâu và khó theo dõi) mà em lại hoàn toàn không biết vbs

Mong các bác giúp đỡ

Tks nhiều
 
Upvote 0
Web KT

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

Back
Top Bottom