Tô màu trong ô tính

Liên hệ QC

thonguyen487912

Thành viên mới
Tham gia
5/5/22
Bài viết
7
Được thích
0
Giới tính
Nữ
Nghề nghiệp
Nhân viên văn phòng
Chào anh chị em. Em có bài này mãi không làm được. Nhờ anh chị em giúp em tô màu dữ liệu trong ô tính với ạ. Em cảm ơn

TÔ MÀU TRONG Ô TÍNH.JPG
 

File đính kèm

  • TÔ MÀU.xlsx
    9.8 KB · Đọc: 6
Bạn thử vận dụng hàm bài viết bên dưới:
Bạn chỉ cần chép mã vào Module trong VBE ở ứng dụng của bạn, sau đó gõ công thức vào ô tùy ý:

=S_Find("([^|]*?)(?:\||//)([^|]*?)(?:\||//)?([^|]*?)(?:\||//)?([^|]*?)(?:\||//)?([^|]*?)(?:\||//)?([^|]*?)(?:\||//)?([^|]*?)(?:\||//)?",A1:A2,{255,12419407,10498160,411800,15773696,255},0,FALSE,TRUE)

Nếu bạn muốn thêm số vị trí thì thêm ([^|]*?)(?:\||//)? và giá trị màu vào mảng {}

Nếu bạn muốn tô màu như thế này [FB: hoàng nam] thì Regex Pattren sẽ là:
([^|]*?\[FB:(.*?)\] *)(?:\||//)? bao nhiêu vị trí thì nhân lên
giá trị màu từ {255,12419407,10498160,411800,15773696,255}
chuyển thành {255, <Màu11>,12419407, <Màu11>,10498160, <Màu11>,411800, <Màu11>,15773696, <Màu11>,255, <Màu11>}

 
Lần chỉnh sửa cuối:
Bạn thử vận dụng hàm bài viết bên dưới:
Bạn chỉ cần chép mã vào Module trong VBE ở ứng dụng của bạn, sau đó gõ công thức vào ô tùy ý:

=S_Find("([^|]*?)(?:\||//)([^|]*?)(?:\||//)?([^|]*?)(?:\||//)?([^|]*?)(?:\||//)?([^|]*?)(?:\||//)?([^|]*?)(?:\||//)?([^|]*?)(?:\||//)?",A1:A2,{255,12419407,10498160,411800,15773696,255},0,FALSE,TRUE)

Nếu bạn muốn thêm số vị trí thì thêm ([^|]*?)(?:\||//)? và giá trị màu vào mảng {}

có cách nào sử dụng conditional formatting được không ạ
Bài đã được tự động gộp:

có cách nào sử dụng conditional formatting được không ạ
cảm ơn anh nhiều, đã thành công ạ
 
Cách khác dùng sub:
PHP:
Option Explicit
Sub test()
Dim i&, k&, cell As Range, letter As String, arr()
    For Each cell In Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row) ' Gia su cot A chua chuoi muon tach mau
        If Len(cell) = 0 Then GoTo Thoat
        k = 0
        ReDim arr(1 To Len(cell), 1 To 2)
        For i = 1 To Len(cell)
            letter = cell.Characters(i, 1).Text
            If InStr(1, "|/", letter) Then ' xet cac ky tu | hoac /. Neu co them ky tu muon tach thi ghep them vao
                k = k + 1
                arr(k, 1) = i
                If k = 1 Then
                    arr(k, 2) = i
                Else: arr(k, 2) = i - arr(k - 1, 1)
                End If
            End If
        Next
        For i = 1 To k
            cell.Characters(arr(i, 1) + 1, arr(k, 2) - 3).Font.Color = _
            WorksheetFunction.Choose(((i - 1) Mod 4) + 1, vbRed, vbBlue, vbMagenta, vbCyan)
        Next
Thoat:
    Next
End Sub
 

File đính kèm

  • TÔ MÀU.xlsm
    16.3 KB · Đọc: 4
Cách khác dùng sub:
PHP:
Option Explicit
Sub test()
Dim i&, k&, cell As Range, letter As String, arr()
    For Each cell In Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row) ' Gia su cot A chua chuoi muon tach mau
        If Len(cell) = 0 Then GoTo Thoat
        k = 0
        ReDim arr(1 To Len(cell), 1 To 2)
        For i = 1 To Len(cell)
            letter = cell.Characters(i, 1).Text
            If InStr(1, "|/", letter) Then ' xet cac ky tu | hoac /. Neu co them ky tu muon tach thi ghep them vao
                k = k + 1
                arr(k, 1) = i
                If k = 1 Then
                    arr(k, 2) = i
                Else: arr(k, 2) = i - arr(k - 1, 1)
                End If
            End If
        Next
        For i = 1 To k
            cell.Characters(arr(i, 1) + 1, arr(k, 2) - 3).Font.Color = _
            WorksheetFunction.Choose(((i - 1) Mod 4) + 1, vbRed, vbBlue, vbMagenta, vbCyan)
        Next
Thoat:
    Next
End Sub
dạ. em đã làm được. cảm ơn anh rất nhiều ạ .
 
Web KT
Back
Top Bottom