Cái này có thể dùng công thức trong formatting condition nhé bạn : =RIGHT(B2,1)="X"Xin chào anh chị
Nhờ anh chij chỉ giúp em cách để các dòng (có ký tự cuối cùng là X) trong cùng 1 ô tự chuyển thành xanh đậm với ạ
Em cảm ơn anh chị.
View attachment 291021
Bạn xem thử. . . .Xin chào anh chị
Nhờ anh chij chỉ giúp em cách để các dòng (có ký tự cuối cùng là X) trong cùng 1 ô tự chuyển thành xanh đậm với ạ
Em cảm ơn anh chị.
View attachment 291021
Có vẻ không ổn vì các dòng đều trong cùng một ô.Cái này có thể dùng công thức trong formatting condition nhé bạn : =RIGHT(B2,1)="X"
View attachment 291023
Code của anh nếu dòng đầu tiên là _X thì sẽ bị lỗiBạn xem thử. . . .
Góp vui thêm một cách:Xin chào anh chị
Nhờ anh chij chỉ giúp em cách để các dòng (có ký tự cuối cùng là X) trong cùng 1 ô tự chuyển thành xanh đậm với ạ
Em cảm ơn anh chị.
View attachment 291021
Option Explicit
Sub ToMau()
Dim p1&, p2&, c As Range, s$, X$, nl$
X = "_X": nl = Chr(10)
With Sheets("Sheet1")
Set c = .[A1]: s = nl & c.Value: p2 = InStrRev(s, X)
Do While p2 > 0
p1 = InStrRev(s, nl, p2 - 1)
c.Characters(p1, p2 - p1 + 1).Font.ColorIndex = 5
p2 = InStrRev(s, X, p1)
Loop
End With
End Sub
Một cách khác tham khảoXin chào anh chị
Nhờ anh chij chỉ giúp em cách để các dòng (có ký tự cuối cùng là X) trong cùng 1 ô tự chuyển thành xanh đậm với ạ
Em cảm ơn anh chị.
View attachment 291021
Sub GPE_Color()
Dim i&, Tmp, r As Range, c As Range
Set c = Cells(1, 1): Tmp = Split(c.Value, Chr(10))
For i = LBound(Tmp) To UBound(Tmp)
If Right(Tmp(i), 1) = "X" Then
With c.Characters(Start:=InStr(c.Value, _
Tmp(i)), Length:=Len(Tmp(i))).Font
.Bold = True
.Color = vbBlue
End With
End If
Next i
End Sub
Nếu cách này mình sẽ thích tạo một biến đếm Len của từng tmp(i) để xác định vị trí bắt đầu cần tô màu, hơn là tìm kiếm trong chuỗi. Hiện tại thế này thì nó lại phụ thuộc vào giá trị của chuỗi quá, nếu 2 đoạn chứa X giống nhau thì nó chỉ tô được 1Một cách khác tham khảo
Mã:Sub GPE_Color() Dim i&, Tmp, r As Range, c As Range Set c = Cells(1, 1): Tmp = Split(c.Value, Chr(10)) For i = LBound(Tmp) To UBound(Tmp) If Right(Tmp(i), 1) = "X" Then With c.Characters(Start:=InStr(c.Value, _ Tmp(i)), Length:=Len(Tmp(i))).Font .Bold = True .Color = vbBlue End With End If Next i End Sub
Đúng vậy bác!Nếu cách này mình sẽ thích tạo một biến đếm Len của từng tmp(i) để xác định vị trí bắt đầu cần tô màu, hơn là tìm kiếm trong chuỗi. Hiện tại thế này thì nó lại phụ thuộc vào giá trị của chuỗi quá, nếu 2 đoạn chứa X giống nhau thì nó chỉ tô được 1
Code của anh nếu dòng đầu tiên là _X thì sẽ bị lỗi
So với dữ liệu hiện tại thì code nào cũng cho kết quả đúng, để em kiểm tra các trường hợp khác trong data chính, có gì em phản hồi sau ạ.
Không biết các bạn đã thử chưa chứ mình thử xóa một chữ "x" trong dữ liệu đi và gõ chữ "x" từ bàn phím vào thì code không nhận là 2 chữ "x" đó giống nhau.Một cách khác tham khảo
Trong file là chữ "X" (hoa), anh xóa rồi gõ lại chữ hoa hay chữ thường?Không biết các bạn đã thử chưa chứ mình thử xóa một chữ "x" trong dữ liệu đi và gõ chữ "x" từ bàn phím vào thì code không nhận là 2 chữ "x" đó giống nhau.
Anh thử cả "x" và "X" rồi, nếu bên máy khác không bị thì không hiểu vì sao nhỉ, khả năng máy anh có vấn đề.Trong file là chữ "X" (hoa), anh xóa rồi gõ lại chữ hoa hay chữ thường?
Bên máy em, sử dụng file anh (#3) không có vấn đề gì nhé (Xóa "X", nhập lại "X" -> Chạy code)Anh thử cả "x" và "X" rồi, nếu bên máy khác không bị thì không hiểu vì sao nhỉ, khả năng máy anh có vấn đề.
Mình thử máy khác cũng không sao, chắc tối về xem lại máy ở nhà.Bên máy em, sử dụng file anh (#3) không có vấn đề gì nhé (Xóa "X", nhập lại "X" -> Chạy code)
Máy tôi thấy vẫn chạy thường mà bác, bác coi có liên quan gì đến kiểu chữ không?Không biết các bạn đã thử chưa chứ mình thử xóa một chữ "x" trong dữ liệu đi và gõ chữ "x" từ bàn phím vào thì code không nhận là 2 chữ "x" đó giống nhau.
Máy đó ở nhà nên tối về mình xem lại xem thế nào.Máy tôi thấy vẫn chạy thường mà bác, bác coi có liên quan gì đến kiểu chữ không?