Làm cách nào để tự động điều chỉnh chiều cao hàng của các ô đã hợp nhất trong Excel?
Trong Excel, chúng tôi có thể nhanh chóng điều chỉnh chiều cao hàng để vừa với nội dung ô bằng cách sử dụng AutoFit Row Height nhưng chức năng này sẽ hoàn toàn bỏ qua các ô đã hợp nhất. Có nghĩa là, bạn không thể áp dụng AutoFit Row Height tính năng thay đổi kích thước chiều cao hàng của các ô đã hợp nhất, bạn cần phải điều chỉnh thủ công chiều cao hàng cho từng ô đã hợp nhất. Trong bài viết này, tôi có thể giới thiệu một số phương pháp nhanh chóng để giải quyết vấn đề này.
Tự động điều chỉnh chiều cao hàng của các ô đã hợp nhất với mã VBA
Tự động điều chỉnh chiều cao hàng của các ô đã hợp nhất với mã VBA
Giả sử tôi có một trang tính với một số ô đã hợp nhất như hình minh họa sau và bây giờ tôi cần thay đổi kích thước chiều cao hàng ô để hiển thị toàn bộ nội dung, mã VBA dưới đây có thể giúp bạn tự động điều chỉnh chiều cao hàng của nhiều ô đã hợp nhất, vui lòng thực hiện như sau:
1. Giữ ALT + F11 chìa khóa và nó mở Cửa sổ Microsoft Visual Basic for Applications.
2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Cửa sổ mô-đun.
Mã VBA: Tự động điều chỉnh chiều cao hàng của nhiều ô được hợp nhấtOption Explicit
Public Sub AutoFitAll()
Call AutoFitMergedCells(Range("a1:b2"))
Call AutoFitMergedCells(Range("c4:d6"))
Call AutoFitMergedCells(Range("e1:e3"))
End Sub
Public Sub AutoFitMergedCells(oRange As Range)
Dim tHeight As Integer
Dim iPtr As Integer
Dim oldWidth As Single
Dim oldZZWidth As Single
Dim newWidth As Single
Dim newHeight As Single
With Sheets("Sheet4")
oldWidth = 0
For iPtr = 1 To oRange.Columns.Count
oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth
Next iPtr
oldWidth = .Cells(1, oRange.Column).ColumnWidth + .Cells(1, oRange.Column + 1).ColumnWidth
oRange.MergeCells = False
newWidth = Len(.Cells(oRange.Row, oRange.Column).Value)
oldZZWidth = .Range("ZZ1").ColumnWidth
.Range("ZZ1") = Left(.Cells(oRange.Row, oRange.Column).Value, newWidth)
.Range("ZZ1").WrapText = True
.Columns("ZZ").ColumnWidth = oldWidth
.Rows("1").EntireRow.AutoFit
newHeight = .Rows("1").RowHeight / oRange.Rows.Count
.Rows(CStr(oRange.Row) & ":" & CStr(oRange.Row + oRange.Rows.Count - 1)).RowHeight = newHeight
oRange.MergeCells = True
oRange.WrapText = True
.Range("ZZ1").ClearContents
.Range("ZZ1").ColumnWidth = oldZZWidth
End With
End Sub
Ghi chú:
(1.) Trong đoạn mã trên, bạn có thể thêm các phạm vi mới chỉ cần sao chép Gọi AutoFitMergedCells (Phạm vi ("a1: b2")) tập lệnh nhiều lần tùy thích và thay đổi các phạm vi ô đã hợp nhất theo nhu cầu của bạn.
(2.) Và bạn nên thay đổi tên trang tính hiện tại Sheet4 đến tên trang tính đã sử dụng của bạn.
3. Sau đó nhấn F5 để chạy mã này và bây giờ, bạn có thể thấy tất cả các ô được hợp nhất đã được tự động điều chỉnh nội dung ô của chúng, xem ảnh chụp màn hình:
Bài viết liên quan:
Làm thế nào để tự động điều chỉnh chiều rộng cột trong Excel?
Công cụ năng suất văn phòng tốt nhất
Nâng cao kỹ năng Excel của bạn với Kutools for Excel và trải nghiệm hiệu quả hơn bao giờ hết. Kutools for Excel cung cấp hơn 300 tính năng nâng cao để tăng năng suất và tiết kiệm thời gian. Bấm vào đây để có được tính năng bạn cần nhất...
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!