Điều chỉnh chiều cao cột trong Excel theo một cột dữ liệu (giống format condition)?

Liên hệ QC

doancd4

Thành viên mới
Tham gia
28/6/07
Bài viết
17
Được thích
5
Em đang làm báo cáo trên một sheet, có nhiều dòng cần phải dãn dòng cho phù hợp với việc diễn giải nội dung nên cần merger lại. Tuy trong excel có tính năng autofit dòng nhưng lại không phù hợp với các ô đã merger với nhau. Em có tìm hiểu qua code của một số thành viên trên mạng và tìm được code này có vẻ hợp lý của thành viên phamduylong, tuy nhiên bài viết này từ năm 2008 nên sợ là bác ấy quên rồi. Nên mạn phép em post lại bài này.
Dưới đây là bài viêt và hạn chế trong code của bác ấy
Không biết cái này có đúng ý bạn chưa ?
Khi bạn nhập dữ liệu, thủ tục Workbook_SheetChange sẽ kiểm tra ô mới vừa nhập ký tự cuối cùng có phải là ">" không. Nếu đúng thì định dạng lại chiều cao theo các số phía trước dấu ">"
Ví dụ chiều cao hiện tại là 12, bạn muốn chiều cao mới là 24 thì nhập 200>; chiều cao mới là 6 thì nhập 50>
Lý do thay dấu % bằng > là vì khi nhập % thì ô đó tự động định dạng %, rất bất tiện cho bạn khi nhập số khác.

Mã:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Dim OldHeigh, NewHeigh
If Right(Target.Value, 1) = ">" Then
  OldHeigh = Target.RowHeight
  NewHeigh = Val(Left(Target.Value, Len(Target.Value) - 1))
  Target.RowHeight = OldHeigh * NewHeigh / 100
End If
End Sub
Có hạn chế xảy ra là khi em dùng copy 120> vào tất cả các dòng còn lại thì các dòng đó tự động ẩn đi? Thêm nữa là các dòng không tự động thay đổi chiều cao khi có giá trị mới, mà bắt buộc phải nhấn enter vào ô đó mới thay đổi. Các bác giúp em với ạ.
Em muốn có một tính năng hoặc hàm nào đó giống như format condition nhưng lại có thể thay đổi được chiều cao dòng, format condition mặc định của excel không có tính năng này
Em chưa biết gì về VBA nhờ các bác chỉ bảo ạ.
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom