Tự động tăng độ cao của hàng khi wrap text (1 người xem)

Liên hệ QC

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

minhtungph

None
Tham gia
18/9/13
Bài viết
198
Được thích
78
- Mình có 1 dòng lấy dữ liệu từ sheet khác, mình muốn khi dữ liệu hết hàng thì độ rộng của hàng rộng ra, mình đã tìm nhiều topic nhưng hầu như không có cách giải quyết triệt để, mình cũng dùng thuộc tính: rows[14].autofit; tuy nhiên nó chỉ co lại
- Cái thứ 2 nữa là phần canh đều trong excel, mình đã fomart cell -> alignment ->trong herizontal mình chọn justify, tuy nhiên ô A25 lại bị lỗi so với các ô khác.
- mong các bạn và các anh chị giúp đỡ, mình rất biết ơn
 

File đính kèm

Tính năng này excel có sẵn nhưng nó lại trơ ra khi các ô có Merge.
 
Upvote 0
Của bạn đây, mình dùng thêm 1 cột phụ có độ rộng bằng tổng các cột sau đó dùng VBA xử lý autofix độ rộng dòng đó
 

File đính kèm

Upvote 0
Của bạn đây, mình dùng thêm 1 cột phụ có độ rộng bằng tổng các cột sau đó dùng VBA xử lý autofix độ rộng dòng đó
cảm ơn bạn đã giúp mình nhưng sao mình thấy nó vẫn vậy mà bạn, không có tăng độ cao của ô khi dữ liệu dài ra, hình như bạn chưa save lại code vba vì nó vẫn là file .xlsx
 
Upvote 0
Của bạn đây, mình dùng thêm 1 cột phụ có độ rộng bằng tổng các cột sau đó dùng VBA xử lý autofix độ rộng dòng đó
Bạn tải file nhầm không? hoặc khi dùng VBA bạn save không để ý nên xóa mất macro rồi?
Chứ có dừng VBA vì đuôi file phải là .xlsm hoặc .xlsa .xlsx không có macro
 
Upvote 0
cám ơn bạn thaytu rất nhiều ạ, mình vẫn không hiểu vì sao khi để nhiều ô nó không autofit mà chỉ để trong 1 ô nó mới autofit
 
Upvote 0
Cái này mình cũng không rõ lắm, bữa mình cũng vấp phải trường hợp thế này sau hồi tìm kiếm thì mới biết phương pháp này thôi.
 
Upvote 0
cám ơn bạn thaytu rất nhiều ạ, mình vẫn không hiểu vì sao khi để nhiều ô nó không autofit mà chỉ để trong 1 ô nó mới autofit
Vấn đề này có lẽ nên đóng góp ý kiến cho bác Bill, chắc bác ấy sẽ giải quyết tận gốc được!
 
Upvote 0
Có phương pháp sau đây, bạn tham khảo nhé (mình sưu tầm thôi): Chép vào Modul rồi đặt phím tắt, khi nào sử dụng, chọn dòng (hoặc Ctrl+A để chọn tất cả) cần WrapText (Merge) rồi nhấn phím tắt.

[GPECODE=vb]Sub AutoFitMergedCellRowHeight()
Dim CurrentRowHeight As Single, MergedCellRgWidth As Single
Dim CurrCell As Range
Dim ActiveCellWidth As Single, PossNewRowHeight As Single
Dim iX As Integer
ActiveCell.WrapText = True
If ActiveCell.MergeCells Then
With ActiveCell.MergeArea
If .Rows.Count = 1 And .WrapText = True Then
Application.ScreenUpdating = False
CurrentRowHeight = .RowHeight
ActiveCellWidth = ActiveCell.ColumnWidth
For Each CurrCell In Selection
MergedCellRgWidth = CurrCell.ColumnWidth + _
MergedCellRgWidth
iX = iX + 1
Next
MergedCellRgWidth = MergedCellRgWidth + (iX - 1) * 0.71
.MergeCells = False
.Cells(1).ColumnWidth = MergedCellRgWidth
.EntireRow.AutoFit
PossNewRowHeight = .RowHeight
.Cells(1).ColumnWidth = ActiveCellWidth
.MergeCells = True
.RowHeight = IIf(CurrentRowHeight > PossNewRowHeight, _
CurrentRowHeight, PossNewRowHeight)
End If
End With
End If
End Sub[/GPECODE]
 
Upvote 0
thì bỏ merge đi, điều chỉnh xong merge lại như cũ (tất nhiên là dùng VBA)
Làm thế này thì hơi tốn công, Không nên định dạng văn bản bên cell. Muốn trình bày đẹp thì qua bên Word
Phải biết kết hợp cell và Word
 
Upvote 0

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

Back
Top Bottom