Chào các bạn GPE!
Tôi có vấn đề với ListBox thế này (trên Sheet chứ không phải xài Listbox cho UserForm nha), nhờ các bạn giải giúp hộ tôi.
Tôi dùng 1 cái ListBox để hiển thị dữ liệu vào đó. Và độ Rộng của listbox = chính độ rộng của Cột trên sheet mà có Cell đang active. (Ví dụ độ rộng của cột là 380 pt hiện tại)
Và Listbox của tôi có 5 cột....Tôi muốn là .ColumnWidths của từng côt trong 5 cột này được set với số Pt động theo tỉ lệ hiện có (lấy độ rộng của Listbox chia cho tỷ lệ hiện có mà tôi đã giả định)
Ví dụ tôi set như sau: .ColumnWidths = "20;150;70;60;80" => tổng độ rộng giả định = 380 pt (gần tương đương với độ rộng của cột đang active, vì cột mình dùng chuột kéo ra ,kéo lại nên độ rộng sẽ có số lẻ.) Tôi giả định mình set trong .ColumnsWidths không có số lẻ
Với số liệu set ở trên thì tôi có tỉ lệ sau: 0.05; 0.39; 0.18; 0.16; 0.22 (tôi làm tròn 2 số lẻ): Lấy tỉ lệ này làm chuẩn (tổng của chúng coi như là 1 = 100%)
Giờ tôi Kéo rộng cột đang đang active ra, hoặc thu hẹp lại. Tiến hành chạy Code bên dưới. Tôi muốn cho dòng màu đỏ .ColumnWidths = "20;150;70;60;80" mình có thể set các kích thước động theo tỷ lệ bên trên. Mục đích để từng cột có trong listbox nó tự dãn theo độ rộng của nó (gần bằng)...Vì thực tế tôi xài sự kiện cho code này...tại cột mong muốn, thường hay kéo ra, kéo vào cái cột ấy.
Tôi loay hoay hoài mà chưa biết set như thế nào cho cái ColumnWidths = "20;150;70;60;80" này theo tỉ lệ động
Độ rộng của ListBox chính là dòng này .Width = ActiveCell.Offset(1).Width
(Lấy dòng này chia lại cho tỷ lên trên)
Xin trân trọng cảm ơn các bạn!
Tôi có vấn đề với ListBox thế này (trên Sheet chứ không phải xài Listbox cho UserForm nha), nhờ các bạn giải giúp hộ tôi.
Tôi dùng 1 cái ListBox để hiển thị dữ liệu vào đó. Và độ Rộng của listbox = chính độ rộng của Cột trên sheet mà có Cell đang active. (Ví dụ độ rộng của cột là 380 pt hiện tại)
Và Listbox của tôi có 5 cột....Tôi muốn là .ColumnWidths của từng côt trong 5 cột này được set với số Pt động theo tỉ lệ hiện có (lấy độ rộng của Listbox chia cho tỷ lệ hiện có mà tôi đã giả định)
Ví dụ tôi set như sau: .ColumnWidths = "20;150;70;60;80" => tổng độ rộng giả định = 380 pt (gần tương đương với độ rộng của cột đang active, vì cột mình dùng chuột kéo ra ,kéo lại nên độ rộng sẽ có số lẻ.) Tôi giả định mình set trong .ColumnsWidths không có số lẻ
Với số liệu set ở trên thì tôi có tỉ lệ sau: 0.05; 0.39; 0.18; 0.16; 0.22 (tôi làm tròn 2 số lẻ): Lấy tỉ lệ này làm chuẩn (tổng của chúng coi như là 1 = 100%)
Giờ tôi Kéo rộng cột đang đang active ra, hoặc thu hẹp lại. Tiến hành chạy Code bên dưới. Tôi muốn cho dòng màu đỏ .ColumnWidths = "20;150;70;60;80" mình có thể set các kích thước động theo tỷ lệ bên trên. Mục đích để từng cột có trong listbox nó tự dãn theo độ rộng của nó (gần bằng)...Vì thực tế tôi xài sự kiện cho code này...tại cột mong muốn, thường hay kéo ra, kéo vào cái cột ấy.
Tôi loay hoay hoài mà chưa biết set như thế nào cho cái ColumnWidths = "20;150;70;60;80" này theo tỉ lệ động
Độ rộng của ListBox chính là dòng này .Width = ActiveCell.Offset(1).Width
(Lấy dòng này chia lại cho tỷ lên trên)
Xin trân trọng cảm ơn các bạn!
Mã:
Sub Test_ListBox2()
With ActiveSheet.ListBox2
.Left = ActiveCell.Offset(1).Left
.Top = ActiveCell.Offset(1).Top
.Height = 200
.Width = ActiveCell.Offset(1).Width
.ColumnCount = 5
[COLOR=#ff0000][B] .ColumnWidths = "20;150;70;60;80"[/B][/COLOR]
.ListFillRange = "=Sheet2!A2:E11"
End With
End Sub
File đính kèm
Lần chỉnh sửa cuối: