đếm số ô màu và tính tổng (5 người xem)

Liên hệ QC

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

Phan Hoàng Anh

Thành viên mới
Tham gia
24/12/15
Bài viết
34
Được thích
12
Giới tính
Nam
chào các anh chị

do em mới tìm hiểu về vba nên e có copy 1 đoạn code trên mạng nhưng k hiểu sau khi chạy kết quả vẫn ra name#
nhờ mấy anh chị xem giúp e

mong muốn kết quả ô d2 là hiện kết quả đếm
và d3 hiện kết quả tổng số ô có màu
 

File đính kèm

Lần chỉnh sửa cuối:
chào các anh chị

do em mới tìm hiểu về vba nên e có copy 1 đoạn code trên mạng nhưng k hiểu sau khi chạy kết quả vẫn ra name#
nhờ mấy anh chị xem giúp e

Thử:
PHP:
Sub Count_Sum_abc()
    Dim Cll As Range, k, Tong, i
    For Each Cll In Range("C5:C13")
        Tong = 0
        If Cll.Interior.ColorIndex = 15 Then
            k = k + 1
            Tong = Tong + Cll
        End If
    Next
    [F2] = k: [G2] = Tong
End Sub
Bạn đã thay đổi File ban đầu?
 
Lần chỉnh sửa cuối:
Thử:
PHP:
Sub Count_Sum_abc()
    Dim Cll As Range, k, Tong, i
    For Each Cll In Range("C5:C13")
        Tong = 0
        If Cll.Interior.ColorIndex = 15 Then
            k = k + 1
            Tong = Tong + Cll
        End If
    Next
    [F2] = k: [G2] = Tong
End Sub

chào anh
em làm vẫn không được
anh có thể làm và cho ra kết quả dùm em với ô d2 hiện kết quả số đếm và ô d3 hiện kết quả tổng
 
Thử:
PHP:
Sub Count_Sum_abc()
    Dim Cll As Range, k, Tong, i
    For Each Cll In Range("C5:C13")
        Tong = 0
        If Cll.Interior.ColorIndex = 15 Then
            k = k + 1
            Tong = Tong + Cll
        End If
    Next
    [F2] = k: [G2] = Tong
End Sub
Bạn đã thay đổi File ban đầu?
Nên viết thành 1 hàm đàng hoàng thì người ta mới áp dụng tùy biến được bạn à
 
Thử:
PHP:
Sub Count_Sum_abc()
    Dim Cll As Range, k, Tong, i
    For Each Cll In Range("C5:C13")
        Tong = 0
        If Cll.Interior.ColorIndex = 15 Then
            k = k + 1
            Tong = Tong + Cll
        End If
    Next
    [F2] = k: [G2] = Tong
End Sub
Bạn đã thay đổi File ban đầu?
Nên viết thành 1 hàm đàng hoàng thì người ta mới áp dụng tùy biến được bạn à
 
em cảm ơn anh
nhưng do em làm trên nhiều sheet và vị trí thay đổi nên k lẻ thay đổi code nhiều lần
cái này làm bằng công thức hay hàm được không a

Bạn thử:
PHP:
Function Dem_Tong(Mauchon As Range, Vung_chon As Range, Optional Sum As Boolean)
    Dim k&, Cll As Range, Mau As Long
    Mau = Mauchon.Interior.ColorIndex
    If Sum = True Then
        For Each Cll In Vung_chon
            If Cll.Interior.ColorIndex = Mau Then
                k = WorksheetFunction.Sum(Cll, k)
            End If
        Next
    Else
        For Each Cll In Vung_chon
            If Cll.Interior.ColorIndex = Mau Then
                k = k + 1
            End If
        Next
    End If
    Dem_Tong = k
End Function
 
Bạn thử:
PHP:
Function Dem_Tong(Mauchon As Range, Vung_chon As Range, Optional Sum As Boolean)
    Dim k&, Cll As Range, Mau As Long
    Mau = Mauchon.Interior.ColorIndex
    If Sum = True Then
        For Each Cll In Vung_chon
            If Cll.Interior.ColorIndex = Mau Then
                k = WorksheetFunction.Sum(Cll, k)
            End If
        Next
    Else
        For Each Cll In Vung_chon
            If Cll.Interior.ColorIndex = Mau Then
                k = k + 1
            End If
        Next
    End If
    Dem_Tong = k
End Function
đầu tiên e cảm ơn a về công thức chạy rất ok
cho e hỏi nếu ô tô màu đó mình bỏ chọn màu thì có cách nào cho công thức tự động thay đổi kết quả không?
e đã thử bỏ chọn tô màu nhưng công thức k thay đổi, phỉa nhấp zo công thức rồi enter thì kết quả mới thay đổi
 
Bạn thử:
PHP:
Function Dem_Tong(Mauchon As Range, Vung_chon As Range, Optional Sum As Boolean)
    Dim k&, Cll As Range, Mau As Long
    Mau = Mauchon.Interior.ColorIndex
    If Sum = True Then
        For Each Cll In Vung_chon
            If Cll.Interior.ColorIndex = Mau Then
                k = WorksheetFunction.Sum(Cll, k)
            End If
        Next
    Else
        For Each Cll In Vung_chon
            If Cll.Interior.ColorIndex = Mau Then
                k = k + 1
            End If
        Next
    End If
    Dem_Tong = k
End Function
Dù không sai nhưng nên rút gọn lại:
Mã:
Function Dem_Tong(Mauchon As Range, Vung_chon As Range, Optional Sum As Boolean)
  Dim k&, Cll As Range, Mau As Long
  Mau = Mauchon.Interior.ColorIndex
  For Each Cll In Vung_chon
    If Cll.Interior.ColorIndex = Mau Then
      If Sum Then
        k = k + Cll.Value
      Else
        k = k + 1
      End If
    End If
  Next
  Dem_Tong = k
End Function
Ngoài ra nên bẫy lỗi trường hợp vùng chọn bị lỗi công thức hay gì đó khiến cho phép tính bị lỗi
 
Dù không sai nhưng nên rút gọn lại:
Mã:
Function Dem_Tong(Mauchon As Range, Vung_chon As Range, Optional Sum As Boolean)
  Dim k&, Cll As Range, Mau As Long
  Mau = Mauchon.Interior.ColorIndex
  For Each Cll In Vung_chon
    If Cll.Interior.ColorIndex = Mau Then
      If Sum Then
        k = k + Cll.Value
      Else
        k = k + 1
      End If
    End If
  Next
  Dem_Tong = k
End Function
Ngoài ra nên bẫy lỗi trường hợp vùng chọn bị lỗi công thức hay gì đó khiến cho phép tính bị lỗi
anh ndu cho e hỏi khi mình bỏ màu ô thì có cách nào để công thức tự cập nhật lại k
 
anh ndu cho e hỏi khi mình bỏ màu ô thì có cách nào để công thức tự cập nhật lại k
Thêm dòng Application.Volatile ở dưới mấy dòng Dim....
Khi giá trị thay đổi, kết quả tự cập nhật. Khi thay đổi màu thì phải bấm F9 để cập nhật
 
Thêm dòng Application.Volatile ở dưới mấy dòng Dim....
Khi giá trị thay đổi, kết quả tự cập nhật. Khi thay đổi màu thì phải bấm F9 để cập nhật
a @ndu96081631 cho em hỏi, khi e kéo công thức sang ô kế bên
data: e thêm dữ liệu (ô chưa tô màu)
1. kết quả: hiện lên con số tổng bao gồm cả ô k tô màu
2. kết quả: ô đếm số ô màu vẫn đếm luôn những những ô không có màu

nhờ anh test lại giúp

file a test dùm e ở sheet tên "95"
 

File đính kèm

a @ndu96081631 cho em hỏi, khi e kéo công thức sang ô kế bên
data: e thêm dữ liệu (ô chưa tô màu)
1. kết quả: hiện lên con số tổng bao gồm cả ô k tô màu
2. kết quả: ô đếm số ô màu vẫn đếm luôn những những ô không có màu

nhờ anh test lại giúp

file a test dùm e ở sheet tên "95"
Cụ thể là kết quả cell nào bị sai? Và theo bạn thì kết quả = bao nhiêu mới đúng?
 
a @ndu96081631 cho em hỏi, khi e kéo công thức sang ô kế bên
data: e thêm dữ liệu (ô chưa tô màu)
1. kết quả: hiện lên con số tổng bao gồm cả ô k tô màu
2. kết quả: ô đếm số ô màu vẫn đếm luôn những những ô không có màu

nhờ anh test lại giúp

file a test dùm e ở sheet tên "95"

Bạn xem File
 

File đính kèm

Web KT

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

Back
Top Bottom