Note: The other languages of the website are Google-translated. Back to English
English English

Làm cách nào để nối các cột ô và giữ màu văn bản trong Excel?

Như chúng ta đã biết, trong khi nối hoặc kết hợp các cột ô thành một cột, định dạng ô (chẳng hạn như màu phông chữ văn bản, định dạng số, v.v.) sẽ bị mất. Bài viết này, tôi sẽ giới thiệu một số thủ thuật để kết hợp các cột ô thành một và giữ màu văn bản dễ dàng nhất có thể trong Excel.

Nối các cột ô và giữ màu phông chữ văn bản bằng mã VBA


Nối các cột ô và giữ màu phông chữ văn bản bằng mã VBA


Để hoàn thành tác vụ này trong Excel, mã VBA sau có thể giúp bạn, vui lòng thực hiện như sau:

1. Giữ ALT + F11 phím để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Cửa sổ mô-đun.

Mã VBA: nối các cột ô và giữ nguyên màu văn bản:

Sub MergeFormatCell()
'Updateby Extendoffice
    Dim xSRg As Range
    Dim xDRg As Range
    Dim xRgEachRow As Range
    Dim xRgEach As Range
    Dim xRgVal As String
    Dim I As Integer
    Dim xRgLen As Integer
    Dim xSRgRows As Integer
    Dim xAddress As String
    On Error Resume Next
    xAddress = ActiveWindow.RangeSelection.Address
    Set xSRg = Application.InputBox("Please select cell columns to concatenate:", "KuTools For Excel", xAddress, , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    xSRgRows = xSRg.Rows.Count
    Set xDRg = Application.InputBox("Please select cells to output the result:", "KuTools For Excel", , , , , , 8)
    If xDRg Is Nothing Then Exit Sub
    Set xDRg = xDRg(1)
    For I = 1 To xSRgRows
        xRgLen = 1
        With xDRg.Offset(I - 1)
            .Value = vbNullString
            .ClearFormats
            Set xRgEachRow = xSRg(1).Offset(I - 1).Resize(1, xSRg.Columns.Count)
            For Each xRgEach In xRgEachRow
                .Value = .Value & Trim(xRgEach.Value) & " "
            Next
            For Each xRgEach In xRgEachRow
                xRgVal = xRgEach.Value
                With .Characters(xRgLen, Len(Trim(xRgVal))).Font
                .Name = xRgEach.Font.Name
                .FontStyle = xRgEach.Font.FontStyle
                .Size = xRgEach.Font.Size
                .Strikethrough = xRgEach.Font.Strikethrough
                .Superscript = xRgEach.Font.Superscript
                .Subscript = xRgEach.Font.Subscript
                .OutlineFont = xRgEach.Font.OutlineFont
                .Shadow = xRgEach.Font.Shadow
                .Underline = xRgEach.Font.Underline
                .ColorIndex = xRgEach.Font.ColorIndex
                End With
                xRgLen = xRgLen + Len(Trim(xRgVal)) + 1
            Next
        End With
    Next I
End Sub

3. Sau đó nhấn F5 để chạy mã này và một hộp nhắc xuất hiện để nhắc bạn chọn phạm vi dữ liệu bạn muốn kết hợp với màu văn bản, xem ảnh chụp màn hình:

4. Và sau đó nhấp vào OK, một hộp thoại khác xuất hiện, vui lòng chọn các ô bạn muốn xuất kết quả tổng hợp, xem ảnh chụp màn hình:

5. Sau đó nhấn vào OK , các cột đã được nối mà không làm mất màu văn bản như ảnh chụp màn hình sau:

Chú thích: Nếu dữ liệu cần kết hợp bao gồm các số, thì mã macro không thể hoạt động chính xác.


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2019 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ các tính năng dùng thử miễn phí 30 ngày. Đảm bảo hoàn tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (9)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Mã này hoạt động thực sự tốt. Nhưng, làm cách nào để thêm khoảng trắng trước hoặc sau văn bản?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào bạn,
Phương thức này hoạt động tốt, cho đến khi xRgLen cao hơn 255.
Có vẻ như tham số này là một byte :-(
Làm thế nào để có thể vượt qua hạn chế này?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Fantástica la macro de concatenar cadena de texto bảo tồnvando formato de origen. En mi caso no funcionaba con F5, pero en la pestaña macro, modificar y opciones me permite entrar el modo de ejecucion con CTRL + letra y funciona de maravilla. Muchas gracias.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Habría Mađra de hacerlo con números?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn mã.
Nếu văn bản có "()", ví dụ "tomate (tomates)". Nó cũng không hoạt động. Có điều gì đó cần sửa đổi để hoạt động với "()" không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Rah,
Bạn khỏe không? Nếu văn bản có "()", chúng ta không cần thay đổi mã VBA. Vui lòng xem ảnh chụp màn hình, văn bản "cà chua (cà chua)" có thể được kết hợp thành công với các cột ô khác thành một cột. Hy vọng nó có thể giúp bạn.
Trân trọng,
Mandy
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
cảm ơn vì mã!
Nó có thể được tự động cập nhật cột nối nếu có bất kỳ thay đổi nào không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Kathy,
Xin lỗi, hiện tại, không có cách nào tốt để làm điều đó, bạn cần chạy lại mã sau khi thay đổi nội dung ô. 😂
Cảm ơn bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Được rồi, cảm ơn bạn đã trả lời
Không có bình luận nào được đăng ở đây
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất