Thay đổi cột hiển thị trong listbox? (1 người xem)

Liên hệ QC

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

minhcong.tckt

Thành viên thường trực
Tham gia
13/4/11
Bài viết
385
Được thích
36
Giới tính
Nam
Giả sử em có 1 danh sách gồm 5 cột là A, B, C, D, E tại sheet 1 chẳng hạn
Bình thường khi em tạo lístbox thì vào properti của listbox đó/ vào mục ColumnCount chỉnh thành 5 thì hiện 5 cột (liên tục)
Giờ em muốn hiện cột A,C,E trong listbox thì làm thế nào ak
Mong các huynh tỷ giúp đỡ
 
Muốn ẩn cột nào thì cho ColumnWidth cột đó =0. Ví dụ các cột có độ rộng là 40, giờ muốn ẩn cột 2, 4 ta dùng câu lệnh:

Me.Listbox1.ColumnWidth="40;0;40;0;40"

Lưu ý: Đối số dạng chuỗi, các cột cách nhau bởi dấu ";"
 
Upvote 0
Muốn ẩn cột nào thì cho ColumnWidth cột đó =0. Ví dụ các cột có độ rộng là 40, giờ muốn ẩn cột 2, 4 ta dùng câu lệnh:

Me.Listbox1.ColumnWidth="40;0;40;0;40"

Lưu ý: Đối số dạng chuỗi, các cột cách nhau bởi dấu ";"
Em gửi bác file đính kèm
Bác sang sheet "CPCT" chuột phải là có lístbox hiện lên, dữ liệu lâý từ Sheet "DM_vattu"
Bác sửa giúp em listbox
Sheet "DM_vattu", đang hiển thị từ cột B,C,D
giờ em muốn hiển thị cột B,C, E
Em thêm code của bác vào nhưng báo lỗi
 

File đính kèm

Upvote 0
Giả sử em có 1 danh sách gồm 5 cột là A, B, C, D, E tại sheet 1 chẳng hạn
Bình thường khi em tạo lístbox thì vào properti của listbox đó/ vào mục ColumnCount chỉnh thành 5 thì hiện 5 cột (liên tục)
Giờ em muốn hiện cột A,C,E trong listbox thì làm thế nào ak
Mong các huynh tỷ giúp đỡ

Để đơn giản hóa thì bạn có thể sử dụng cách này: Click vào ListBox và click vào bên phải mục ColumnWidths (trong cửa sổ Properties) và gõ các thông số 40;0;40;0;40 nó sẽ tự thêm như thế này (40 pt;0 pt;40 pt;0 pt;40 pt).

Nói chung nó vẫn hiển thị đủ 5 cột, nhưng do cột có pt bằng 0 nên bạn không nhìn thấy mà thôi.
 
Upvote 0
Mấy ngày không vào nên chưa biết bạn hỏi, hôm nay mới trả lời bạn được:

Mình tham gia có tính tổng thể mà cái form của bạn yêu cầu phải giải quyết được

1/Các vùng DM_VT1 hay DM_CTR là những vùng chỉ có 3 cột mà bạn yêu cầu lên cột thứ 4 ngoài vùng nên bạn phải mở rộng vùng dữ liệu.
2/Listbox của bạn phải Load dữ liệu khi:

-Mở Form
-Textbox thay đổi
-Chọn danh mục vật tư hay danh mục công trình

Ta không nên viết Code riêng cho từng sự kiện mà ta viết chung 1 Sub có trách nhiệm Load dữ liệu căn cứ vào điều kiện xcs định trên Form. Khi các sự kiện trên phát sinh ta gọi nó là xong.
Đây là code load dữ liệu:

Mã:
Sub ResetDT()
Dim Rg As Range, FindStr As String, Arr
FindStr = TB.Text
If Me.OptionButton1 = True Then
sArray = Sheets("DM_vattu").Range("DM_CTR").Resize(, 4).Value
Me.LB.ColumnWidths = "40;140;0;0"
Else
sArray = Sheets("DM_vattu").Range("DM_VT1").Resize(, 4).Value
Me.LB.ColumnWidths = "30;139;0;40"
End If
  Arr = Filter2DArray(sArray, 2, "*" & FindStr & "*", False)
  If Not IsArray(Arr) Then LB.Clear: Exit Sub
  LB.List() = IIf(Trim(FindStr) = "", sArray, Arr)
  LB.Selected(0) = True
End Sub

Các code khác điều chỉnh bạn xem trong file nha
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom