Nhờ chỉ giúp cách sử dụng hàm để tô màu chữ (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

pinklove

Thành viên thường trực
Tham gia
21/1/08
Bài viết
336
Được thích
42
Em có một ví dụ như file đính kèm. Em muốn dùng hàm để tô màu các đoạn chữ riêng biệt trong 1 ô có được không ạ? Nhờ các bác chỉ giúp.
 

File đính kèm

Em có một ví dụ như file đính kèm. Em muốn dùng hàm để tô màu các đoạn chữ riêng biệt trong 1 ô có được không ạ? Nhờ các bác chỉ giúp.

Bác có thể dùng "Record Macro" để lưu lại code VBA của các thao tác tô màu cho các đoạn trong 1 cell, sau đó xem code nó thế nào để suy ra cách làm.

Cụ thể, để tô màu cho một phần text trong cell, bạn chạy code:
Mã:
'Tô màu cho 7 ký tự đầu trong cell
cell.Characters(Start:=1, Length:=7).Font.Color = -16776961

record-macro.png
 
Bác có thể dùng "Record Macro" để lưu lại code VBA của các thao tác tô màu cho các đoạn trong 1 cell, sau đó xem code nó thế nào để suy ra cách làm.

Cụ thể, để tô màu cho một phần text trong cell, bạn chạy code:
Mã:
'Tô màu cho 7 ký tự đầu trong cell
cell.Characters(Start:=1, Length:=7).Font.Color = -16776961

record-macro.png
EM muốn sử dụng công thức chứ ko phải VBA ạ
 
EM muốn sử dụng công thức chứ ko phải VBA ạ
Các hàm trang tính toàn loại gà mờ thôi. Chúng chỉ biết trả về giá trị chứ không biết make-up. Chỗ này kẻ đậm, chỗ kia bôi mầu đỏ, chỗ nọ thoa mầu hồng ..., chúng không biết làm những việc như thế đâu.
 
Các hàm trang tính toàn loại gà mờ thôi. Chúng chỉ biết trả về giá trị chứ không biết make-up. Chỗ này kẻ đậm, chỗ kia bôi mầu đỏ, chỗ nọ thoa mầu hồng ..., chúng không biết làm những việc như thế đâu.
Cái này là mình dùng công thức liên kết các ô. Và mình muốn đổi màu dữ liệu lấy được ở ô liên kết sang ấy, chứ ko phải trong 1 đoạn văn bản có sẵn
 
Cái này là mình dùng công thức liên kết các ô. Và mình muốn đổi màu dữ liệu lấy được ở ô liên kết sang ấy, chứ ko phải trong 1 đoạn văn bản có sẵn
thế bạn sẽ phải làm việc nối các liên kết đó trong VBA để ra một chuỗi và dùng VBA để tô màu chuỗi đó theo ý bạn. Khi có công thức thì sẽ chỉ có ô đó sẽ chỉ có 1 kiểu chữ, 1 màu chữ thôi
 
Cái này là mình dùng công thức liên kết các ô. Và mình muốn đổi màu dữ liệu lấy được ở ô liên kết sang ấy, chứ ko phải trong 1 đoạn văn bản có sẵn
Theo mình biết thì không có hàm cơ bản Excel nào có thể hiểu và đổi màu được như bạn nói, tô màu bình thường theo điều kiện trong Excel lòng vòng chỉ có trong Conditional Formatting
 
thế bạn sẽ phải làm việc nối các liên kết đó trong VBA để ra một chuỗi và dùng VBA để tô màu chuỗi đó theo ý bạn. Khi có công thức thì sẽ chỉ có ô đó sẽ chỉ có 1 kiểu chữ, 1 màu chữ thôi
Vậy giả sử ở ô E1 mình có công thức như sau:
="- Văn bản "&A77&A78&" "&F73&A79&A81&A80
Bạn giúp mình cái code để màu của phần link từ F73 và A81 thành màu đỏ với ạ
 
Bác có thể dùng "Record Macro" để lưu lại code VBA của các thao tác tô màu cho các đoạn trong 1 cell, sau đó xem code nó thế nào để suy ra cách làm.

Cụ thể, để tô màu cho một phần text trong cell, bạn chạy code:
Mã:
'Tô màu cho 7 ký tự đầu trong cell
cell.Characters(Start:=1, Length:=7).Font.Color = -16776961

record-macro.png
Cho mình hỏi các bạn thêm chút với code này là đếm số ký tự từ đầu, nhưng giả sử mình muốn tô màu các ký tự cuối câu mà đầu thì không cố định số chữ thì code phải thế nào.
 
Anh chị oi! anh chị nào có file báo cáo Thu chi công nợ cuối tháng không cho em với ạ! Trân trọng cám ơn ạ!
Bài đã được tự động gộp:

Em xin chào các anh chị Groups ạ! Anh chị nào có file excel BÁO CÁO THU CHI CUỐI THÁNG thì cho em xin ạ. Em trân trọng cám ơn
 
thank bạn, mình cũng đã làm được rồi, chỉ cần cộng độ dài của chuỗi ký tự trong các ô vào start và lengh là ok. Kiểu như sau:
Mã:
Set Found = Range("A9")
With Found.Characters(Start:=633, Length:=Len(Range("A54")))
     .Font.ColorIndex = 3
     .Font.Bold = True
End With
With Found.Characters(Start:=Len(Range("A54")) + 836, Length:=Len(Range("C40")) + 1)
     .Font.ColorIndex = 3
     .Font.Bold = True
End With
 
thank bạn, mình cũng đã làm được rồi, chỉ cần cộng độ dài của chuỗi ký tự trong các ô vào start và lengh là ok. Kiểu như sau:
Mã:
Set Found = Range("A9")
With Found.Characters(Start:=633, Length:=Len(Range("A54")))
     .Font.ColorIndex = 3
     .Font.Bold = True
End With
With Found.Characters(Start:=Len(Range("A54")) + 836, Length:=Len(Range("C40")) + 1)
     .Font.ColorIndex = 3
     .Font.Bold = True
End With
Nếu của bạn cố định rồi thì chỉ cần thế thôi. :) còn kiểu trên là độ dài các ô liên kết có thể thay đổi mà. Bạn cứ hiểu cách làm và xử lý được công việc của mình là ổn rồi
 
Nếu của bạn cố định rồi thì chỉ cần thế thôi. :) còn kiểu trên là độ dài các ô liên kết có thể thay đổi mà. Bạn cứ hiểu cách làm và xử lý được công việc của mình là ổn rồi
Cũng nhờ từ gợi ý của bạn mà ra. Chân thành cảm ơn bạn nhiều.
 
Web KT

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

Back
Top Bottom