- Tham gia
- 8/6/06
- Bài viết
- 14,612
- Được thích
- 22,932
- Nghề nghiệp
- U80
1*/ Bạn đừng nên viết thế này; Mà nên dùng là đại từ ngôi thứ hai số nhiềuBro SA_DQ ơi, giúp mình thêm phát nữa nhé.
Tại sao thì bạn tự tìm hiểu & trả lời, nha!
2*/ Bạn chạy Color2 độc lập sau cái macro hôm trước, hay thêm dòng
Color2 vô trước dòng lệnh cuối để gọi macro2 này
Tuy nhiên Macro1 không thể không cùng song hành với người anh em kết nghĩa của nó
3*/ Trong 2 macro mình chỉ cho rằng có 5 nhóm số trùng nhau là tối đa giữa 2 dòng; Trong thực tế nhiều hơn, bạn nên tăng biến mảng này lên cho phù hợp.
PHP:
Option Explicit: Option Base 1
Sub Color2()
Dim cRng As Range, sRng As Range, Clls As Range
Dim StrC0 As String, StrC1 As String
Dim bDD As Byte, bJ As Byte, bVTr As Byte, bDem As Byte
Set cRng = Cells.SpecialCells(xlCellTypeComments)
Set sRng = cRng.Cells(1, 1).Offset(, -1).Resize(cRng.Rows.Count, 1)
Application.ScreenUpdating = False
For Each Clls In sRng
If Clls.Row = 1 Then
GoTo 35
Else
Set cRng = Clls.Offset(-1)
StrC0 = cRng.Value: StrC1 = Clls.Value
bDD = Len(StrC0): ReDim MVTr(5) As Byte
For bJ = 1 To bDD Step 3
bVTr = InStr(1, StrC1, Mid(StrC0, bJ + 1, 2))
If bVTr > 0 Then
bDem = 1 + bDem: MVTr(bDem) = bJ + 1
End If
Next bJ
Color1 cRng, MVTr: bDem = 0
End If
35 Next Clls
End Sub
Mã:
[B]Sub Color1[/B](Rng As Range, MMM As Variant)
Dim bZ As Byte
Rng.Select
With ActiveCell.Characters(Start:=1, Length:=MMM(1) - 1).Font
.ColorIndex = 11
End With
For bZ = 1 To 5
If MMM(bZ) = 0 Then Exit For
With ActiveCell.Characters(Start:=MMM(bZ), Length:=2).Font
.ColorIndex = 3
End With
With ActiveCell.Characters(Start:=MMM(bZ) + 2, Length:=12).Font
.ColorIndex = 11
End With
Next bZ
[B]End Sub[/B]