Hàm tính tổng và đếm các ô cùng màu báo lỗi VALUE (1 người xem)

Liên hệ QC

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

lovetobeloved

Thành viên mới
Tham gia
29/11/09
Bài viết
26
Được thích
26
Nhờ các thầy xem giúp em hàm này bị lỗi ở dòng nào mà nó toàn trả về lỗi VALUE
Em viết nó để tính tổng/ đếm các ô cùng màu

Function colorfunction(rColor As Range, rRange As Range, Optional SUM As Boolean)
Dim rCell As Range
Dim lCol As Long
Dim vResult
lCol = rCell.Interior.ColorIndex
If SUM = True Then
For Each rCell In rRange
If rCell.Interior.ColorIndex = lCol Then
vResult = WorksheetFunction.SUM(rCell) + vResult
End If
Next rCell
Else
For Each rCell In rRange
If rCell.Interior.ColorIndex = lCol Then
vResult = 1 + vResult
End If
Next rCell
End If
colorfunction = vResult
End Function
Cám ơn các thầy nhiều
Note: đoạn code này em gõ nguyên từ quyển Excel Hack tip 113
 
Nhờ các thầy xem giúp em hàm này bị lỗi ở dòng nào mà nó toàn trả về lỗi VALUE
Em viết nó để tính tổng/ đếm các ô cùng màu

Function colorfunction(rColor As Range, rRange As Range, Optional SUM As Boolean)
Dim rCell As Range
Dim lCol As Long
Dim vResult
lCol = rCell.Interior.ColorIndex
If SUM = True Then
For Each rCell In rRange
If rCell.Interior.ColorIndex = lCol Then
vResult = WorksheetFunction.SUM(rCell) + vResult
End If
Next rCell
Else
For Each rCell In rRange
If rCell.Interior.ColorIndex = lCol Then
vResult = 1 + vResult
End If
Next rCell
End If
colorfunction = vResult
End Function
Cám ơn các thầy nhiều
Note: đoạn code này em gõ nguyên từ quyển Excel Hack tip 113
Sửa lại thế này
PHP:
Function colorfunction(rCell As Range, rRange As Range)
Dim lCol As Long
Dim vResult
lCol = rCell.Interior.ColorIndex
   For Each rCell In rRange
      If rCell.Interior.ColorIndex = lCol Then
         vResult = 1 + vResult
      End If
   Next rCell
colorfunction = vResult
End Function
 
Lần chỉnh sửa cuối:
Upvote 0
Sửa lại thế này
PHP:
Function colorfunction(rCell As Range, rRange As Range)
Dim lCol As Long
Dim vResult
lCol = rCell.Interior.ColorIndex
   For Each rCell In rRange
      If rCell.Interior.ColorIndex = lCol Then
         vResult = 1 + vResult
      End If
   Next rCell
colorfunction = vResult
End Function

Coi lại đi anh QuangHai ơi, hàm người ta có thêm Option là SUM đó! Anh làm như vậy là thiếu hàm của người ta rồi!

Mà nhìn hàm đó thấy có gì lỗi đâu ta? Nếu bạn ấy đưa file lên và chỉ rõ lỗi tại đâu thì chắc dễ tìm ra nguyên nhân hơn, và cũng có thể chủ topic đã gõ cấu trúc sai mới bị lỗi, hoặc sheet bị protect v.v...

À, có khả năng lỗi phát sinh tại lCol! nếu Chỉ số màu - ColorIndex - (do cộng dồn lại) không tồn tại, có thể sẽ phát sinh ra lỗi! Hãy bẫy lỗi tại đây!
 
Lần chỉnh sửa cuối:
Upvote 0
Coi lại đi anh QuangHai ơi, hàm người ta có thêm Option là SUM đó! Anh làm như vậy là thiếu hàm của người ta rồi!

Mà nhìn hàm đó thấy có gì lỗi đâu ta? Nếu bạn ấy đưa file lên và chỉ rõ lỗi tại đâu thì chắc dễ tìm ra nguyên nhân hơn, và cũng có thể chủ topic đã gõ cấu trúc sai mới bị lỗi, hoặc sheet bị protect v.v...

À, có khả năng lỗi phát sinh tại lCol! nếu Chỉ số màu - ColorIndex - (do cộng dồn lại) không tồn tại, có thể sẽ phát sinh ra lỗi! Hãy bẫy lỗi tại đây!
Yên tâm đi anh ơi, có gì thì người ta la lên liền. Tội gì phải nặng lòng chứ. Ai kêu ném code lên không có file và không mô tả rõ ràng. Sửa vậy là đẹp lắm rồi. Nếu nói lỗi thì chắc chắn là cái rColor vì khai báo xong rồi đâu có xài lần nào trong code đâu.
 
Upvote 0
Mình nghỉ macro đang báo lỗi ở dòng lệnh thứ 4

PHP:
Function colorfunction(rColor As Range, rRange As Range, Optional SUM As Boolean)
Dim rCell As Range
Dim lCol As Long
Dim vResult
'
 lCol = rCell.Interior.ColorIndex
'
 
Lần chỉnh sửa cuối:
Upvote 0
Em xin cám ơn các thầy nhiều, thầy ChanhTQ phán đoán chính xác, em đã sửa và chạy được rồi, hàm này kết hợp với formatting condition thì ra rất nhiều mẹo hay
 
Upvote 0

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

Back
Top Bottom