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
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 ạ.
Dưới đây là bài viêt và hạn chế trong code của bác ấy
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 ạ.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
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: