Cookie giúp chúng tôi cung cấp dịch vụ của chúng tôi. Bằng cách sử dụng dịch vụ của chúng tôi, bạn đồng ý sử dụng cookie.
Mẹo: Các ngôn ngữ khác được Dịch bởi Google. Bạn có thể ghé thăm English phiên bản của liên kết này.
Đăng nhập
x
or
x
x
Ghi danh
x

or

Làm thế nào để trích xuất văn bản dựa trên màu chữ từ một ô trong Excel?

Nếu bạn có một danh sách dữ liệu với một số văn bản màu đỏ trong mỗi ô trong Excel như thể hiện dưới đây ảnh chụp màn hình, và bạn có biết làm thế nào để trích xuất các văn bản màu đỏ chỉ? Bây giờ tôi sẽ giới thiệu một cách nhanh chóng để giải quyết các câu đố mà chiết xuất văn bản dựa trên màu chữ từ một tế bào trong Excel.

doc-extract-text-color-1

Trích xuất văn bản dựa trên màu phông chữ từ mỗi ô


mũi tên màu xanh bên phải Trích xuất văn bản dựa trên màu phông chữ từ mỗi ô


Trong Excel, bạn chỉ có thể sử dụng chức năng đã định nghĩa để trích xuất văn bản dựa trên màu chữ.

1. nhấn Alt + F11 chìa khóa với nhau để mở cửa sổ Microsoft Visual Basic cho ứng dụng.

2. nhấp chuột Chèn > Mô-đun và sao chép mã VBA theo sau đến cửa sổ popped out.

VBA: Trích xuất văn bản dựa trên màu chữ

Function GetColorText(pRange As Range) As String
	'Updateby20141105
	Dim xOut As String
	Dim xValue As String
	Dim i As Long
	xValue = pRange.Text

	For i = 1 To VBA.Len(xValue)

		If pRange.Characters(i, 1).Font.Color = vbRed Then
			xOut = xOut & VBA.Mid(xValue, i, 1)
		End If

	Next

	GetColorText = xOut
End Function

3. Sau đó lưu và đóng hộp thoại, và chọn một ô trống bên cạnh danh sách dữ liệu, gõ công thức này = GetColorText (A1) (A1 chỉ ra ô mà bạn muốn trích xuất văn bản từ), nhấn Đi vào để lấy văn bản cần thiết, sau đó kéo trình xử lý tự động điền để điền vào công thức với dải ô bạn muốn.

Bây giờ bạn có thể thấy tất cả các văn bản màu đỏ được trích xuất.

doc-extract-text-color-2

Mẹo: Trong mã VBA ở trên, nếu bạn cần trích xuất văn bản màu đen từ các ô, bạn có thể thay đổi tên màu Màu = vbRed đến Màu = vbBlack.


Các bài báo tương đối:



Các công cụ sản xuất được đề nghị

Tab Office

sao vàng1 Mang các tab tiện dụng vào Excel và các phần mềm Office khác, giống như Chrome, Firefox và Internet Explorer mới.

Kutools cho Excel

sao vàng1 Kinh ngạc! Tăng năng suất của bạn trong 5 phút. Không cần bất kỳ kỹ năng đặc biệt, tiết kiệm được hai giờ mỗi ngày!

sao vàng1 300 Các tính năng mới cho Excel, Làm cho Excel dễ dàng và mạnh mẽ:

  • Hợp nhất ô / Hàng / Cột mà không mất dữ liệu.
  • Kết hợp và Hợp nhất nhiều trang tính và Workbooks.
  • So sánh các dãy, sao chép nhiều dãy, chuyển đổi văn bản sang ngày, đơn vị và chuyển đổi tiền tệ.
  • Đếm theo màu sắc, Paging Subtotals, sắp xếp nâng cao và Super Filter,
  • Thêm / Chèn / Xóa / Văn bản / Định dạng / Liên kết / Nhận xét / Tập tin / Workheets Công cụ ...

Ảnh chụp màn hình của Kutools cho Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    prudwi · 2 months ago
    The code works well if the red strings are continuous. In case they are separated in the source cell, they are glued to each other in output cell. I mean there is no space in the output if the red text strings are away from each other. Can you please provide a solution for this?
  • To post as a guest, your comment is unpublished.
    Kazam Raza · 2 months ago
    thanks, very interesting code.
  • To post as a guest, your comment is unpublished.
    Roberto · 3 months ago
    dimenticavo io ho Excel 2010
  • To post as a guest, your comment is unpublished.
    Roberto · 3 months ago
    Buonasera, grazie mille un'ottima funzione. Però ho un problema, quando val nel foglio ed inserisco es. = GetColorText (A1) mi restituisce il valore giusto però come riavvio il file mi da errore #VALORE!, se poi clicco 2 volte sopra mi da il valore corretto e così via. che posso fare?
  • To post as a guest, your comment is unpublished.
    JM · 1 years ago
    Hey, Thanks for the Tip. Works great with Red and Black.
    What if I want to parse "Purple"? changing it vbPurple does not work.
    Thanks