Xin hỏi về cách đếm số chữ theo màu chữ trong excel

Liên hệ QC

son1emy2

Thành viên mới
Tham gia
16/9/13
Bài viết
2
Được thích
0
Mình có 1 file excel gồm 2 cột. Bây giờ mình muốn đếm số chữ ở 1 số ô trong cột A theo điều kiện là những chữ ở ô tương ứng trong cột B có màu đỏ.
Vì file dữ liệu khá lớn nên mình không thể copy sang word để đếm chữ được, nên mình post lên đây nhờ mọi người giúp.
Mình có gửi kèm file mô tả về câu hỏi của mình.
Xin hỏi mình phải làm như thế nào? Cám ơn các bạn!
 

File đính kèm

Bạn xài tạm cái ni trong khi chờ cái khác hay hơn

Hàm tự tạo cho E2003

\\\\\\\\\\\\\\\\\\\\\\\\////////////\\\\\\\\\\\\\\\\\\\//////////////////////....................
 

File đính kèm

Thanks bạn. Nhưng mình chưa hiểu cách sử dụng lắm. Bạn có thể giải thích cho mình về cách dùng macro mà bạn viết được ko
 
[Thongbao]. . . . Nhưng mình chưa hiểu cách sử dụng lắm. Bạn có thể giải thích cho mình về cách dùng macro mà bạn viết được ko
PHP:
Option Explicit
Function DemTuCoMau(StrC As Range)
1 Dim WF As Object, MyStr As String
 
 Set WF = WorksheetFunction
3 With StrC.Font
    If .ColorIndex = 3 Or .ColorIndex = 5 Then
5        MyStr = WF.Trim(StrC.Offset(, -1))
        DemTuCoMau = 1 + Len(MyStr) - Len(Replace(MyStr, " ", ""))
7    End If
 End With
End Function

[/Thongbao]

D1: Khai báo 2 biến cần dùng, trong đó biến đầu là biến đối tượng, còn biến sau dùng để chứa chuỗi;

D2: Lấy đối tượng là hàm của excel đem gán vô biến đối tượng;

D3: Tuyên cáo ta sẽ làm việc với Font chữ của chuổi dữ liệu chứa trong ô cung cấp cho hàm;
(Tuyên cáo này chấm dứt tại D8)

D4: Điều kiện nếu Font chữ của chuỗi bằng 3 hay 5 (tương tứng là chỉ sối màu đỏ hay xanh)
thì thực hiện 02 dòng lệnh kế tiếp

D5: Lấy trị trong ô bên trái liền kề với ô cung cấp cho hàm (tham biến StrC) & dùng hàm =TRIM() trong excel để cắt đi các khoảng trống thừa. (Hàm TRIM() trong VBA cũng có nhưng không có giá trị bằng hàm TRIM() trong excel trong trường hợp này) Trị sau xử lý đem gán vô biến chuỗi đã khai báo bên trên

D6: Số từ = số khoàng trống (giữa các từ ) + 1

D7: Kết thúc điều kiện thỏa.

Hi vọng giúp bạn ít nhiều!
 
Nhu cầu của mình là đếm số ô có chứa chữ định dạng theo màu. Mình dùng code này:
Function CountByColor(range_data As Range, criteria As Range) As Long
Dim datax As Range
Dim xcolor As Long
xcolor = criteria.Font.ColorIndex
For Each datax In range_data
If datax.Font.ColorIndex = xcolor Then
CountByColor = CountByColor + 1
End If
Next datax
End Function. Nhưng đếm xong rồi mình xóa dữ liệu của ô đó thì kết quả không thay đổi. Trong VD của file lúc đầu có 6 ô có chữ màu xanh (đếm đúng) nhưng sau đó mình xóa bớt 1-2 ô đi thì kết quả không thay đổi theo. Các bạn giúp mình chỗ này với
 

File đính kèm

Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom