[HELP] VBA_count với nhiều điều kiện

Liên hệ QC

n0bita1010

Thành viên mới
Tham gia
10/3/13
Bài viết
10
Được thích
0
Xin chào các bác,
Em có file chấm công ở đính kèm,
Mô tả: - Mục đích: tạo 1 công thức đếm trong 1 vùng dữ liệu, với các điều kiện sau:
+ Nếu ô đó không phải màu vàng
+ Nếu ô đó chứa: HC or C1 or C2 (Tức là đi làm đủ 8 tiếng ca HC, ca 1, ca2) thì đếm là: 1
+ Nếu ô đó chứa: 0.5HC or 0.5HC1 or 0.5C2 (tức đi làm nửa ca) thì đếm là: 0.5
Em tạo Function như sau, nhưng khi gõ công thức thì kết quả trả về là : #Value.
Em mới đang tập toẹ VBA nên Không biết code bị sai ở đâu.
Xin các cao nhân chỉ giáo ạ!

Function demhct(ra As Range)
Dim cu As Range
' cu la bien o
Dim sumRes
' tong dem
Application.Volatile
sumRes = 0
For Each cu In ra
If cu.Interior.ColorIndexr <> 6 Then
If cu.Value = "HC" Or cu.Value = "C1" Or cu.Value = "C2" Then
sumRes = sumRes + 1
Else
If cu.Value = "0.5HC" Or cu.Value = "0.5C1" Or cu.Value = "0.5C2" Then
sumRes = sumRes + 0.5
End If
End If
End If
Next cu
demhct = sumRes
End Function
 

File đính kèm

Xin chào các bác,
Em có file chấm công ở đính kèm,
Mô tả: - Mục đích: tạo 1 công thức đếm trong 1 vùng dữ liệu, với các điều kiện sau:
+ Nếu ô đó không phải màu vàng
+ Nếu ô đó chứa: HC or C1 or C2 (Tức là đi làm đủ 8 tiếng ca HC, ca 1, ca2) thì đếm là: 1
+ Nếu ô đó chứa: 0.5HC or 0.5HC1 or 0.5C2 (tức đi làm nửa ca) thì đếm là: 0.5
Em tạo Function như sau, nhưng khi gõ công thức thì kết quả trả về là : #Value.
Em mới đang tập toẹ VBA nên Không biết code bị sai ở đâu.
Xin các cao nhân chỉ giáo ạ!

Function demhct(ra As Range)
Dim cu As Range
' cu la bien o
Dim sumRes
' tong dem
Application.Volatile
sumRes = 0
For Each cu In ra
If cu.Interior.ColorIndexr <> 6 Then
If cu.Value = "HC" Or cu.Value = "C1" Or cu.Value = "C2" Then
sumRes = sumRes + 1
Else
If cu.Value = "0.5HC" Or cu.Value = "0.5C1" Or cu.Value = "0.5C2" Then
sumRes = sumRes + 0.5
End If
End If
End If
Next cu
demhct = sumRes
End Function
Chỗ này thừa chữ R nhé bạn sửa thành.
Mã:
If cu.Interior.ColorIndex <> 6 Then
 
Upvote 0
Tên biến đặt ý nhị quá nhỉ.
 
Upvote 0
Xin chào các bác,
Em có file chấm công ở đính kèm,
Mô tả: - Mục đích: tạo 1 công thức đếm trong 1 vùng dữ liệu, với các điều kiện sau:
+ Nếu ô đó không phải màu vàng
+ Nếu ô đó chứa: HC or C1 or C2 (Tức là đi làm đủ 8 tiếng ca HC, ca 1, ca2) thì đếm là: 1
+ Nếu ô đó chứa: 0.5HC or 0.5HC1 or 0.5C2 (tức đi làm nửa ca) thì đếm là: 0.5
Em tạo Function như sau, nhưng khi gõ công thức thì kết quả trả về là : #Value.
Em mới đang tập toẹ VBA nên Không biết code bị sai ở đâu.
Xin các cao nhân chỉ giáo ạ!

Function demhct(ra As Range)
Dim cu As Range
' cu la bien o
Dim sumRes
' tong dem
Application.Volatile
sumRes = 0
For Each cu In ra
If cu.Interior.ColorIndexr <> 6 Then
If cu.Value = "HC" Or cu.Value = "C1" Or cu.Value = "C2" Then
sumRes = sumRes + 1
Else
If cu.Value = "0.5HC" Or cu.Value = "0.5C1" Or cu.Value = "0.5C2" Then
sumRes = sumRes + 0.5
End If
End If
End If
Next cu
demhct = sumRes
End Function
khai báo thiếu tè le vậy bạn
 

File đính kèm

Upvote 0
Upvote 0
dạ tiên em xin cách, khi viết function cho 1 workbook rồi thì làm thế nào để Function đó được sử dụng trong toàn bộ các file khác nữa ạ?
 
Upvote 0
Chỗ Dim sumRes thì gán integer nữa là được.
 
Upvote 0
Web KT

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

Back
Top Bottom