Hỏi về cách sử dụng RowSource trong listbox

Liên hệ QC

vietcong1980

Thành viên chính thức
Tham gia
24/4/09
Bài viết
75
Được thích
11
Trong ví dụ 3(Sử dụng ListBox đơn giản trang 344) mình đã làm theo phương thức AddIterm trong VBA, giờ mình muốn các phần tử trong ListBox được tạo ra trực tiếp từ bảng tính bằng cách sử dụng thuộc tính RowSource. Các bạn làm giúp mình 1 ví dụ như vậy nhé. Cám ơn các bạn!(file dưới là các phần tử trong ListBox được tạo ra bằng phương thức AddIterm như trong sách).
http://www.mediafire.com/?q081pdz8bpuc554
 
Lần chỉnh sửa cuối:
Để sử dụng RowSource thì bạn có thể điền vào đó vùng bạn chọn (ví dụ A1:A5) hoặc bạn quét vùng chọn trong excel rồi nhấn ctrl + F3 và đặt tên cho nó, sau đó điền cái tên bạn vừa đặt vào RowSource
 
Upvote 0
Xin lỗi vì giờ mình mới trả lời bạn được. Bạn xem hộ mình video này, mình sai chỗ nào nhé. Trong RowSource đó, mình mà gõ như bạn nói, tức là A1:A5 là VBA báo lỗi, mình để một số thì không báo lỗi nhưng cũng không thấy được.
[video=youtube;talgCNEMkNg]http://www.youtube.com/watch?v=talgCNEMkNg&list=UU9943-XNJiboiq8r7XGM2RQ&index=2&feature=plcp[/video]
 
Upvote 0
Theo như cách bạn làm trong video thì bạn đã sai ở chỗ bạn phải nhập là .RowSource chứ không phải là RowSource vì nó là thuộc tính của listbox mà.

Bạn có thể viết câu lệnh thế này: LstMacro.RowSource = "A1:A5"
Hoặc bạn có thể mở bảng properties của listbox, tìm thuộc tính RowSource để điền vào.

Lưu ý là bạn dùng RowSource thì không dùng được .AddItem đâu nhé, nếu không sẽ gây ra lỗi.
 
Lần chỉnh sửa cuối:
Upvote 0
1. Bạn chỉ được làm 1 trong 2: Add Item và gán Rowsource
2. Cú pháp gán row source là: (1 trong các cách)
- LstMacro.RowSource = Sheet1.Range("A1:A6").Address
- LstMacro.RowSource = Range("A1:A6").Address
- LstMacro.RowSource = "A1:A6"
- LstMacro.RowSource = "abc", với abc là Name đã định nghĩa.
 
Upvote 0
1. Bạn chỉ được làm 1 trong 2: Add Item và gán Rowsource
2. Cú pháp gán row source là: (1 trong các cách)
- LstMacro.RowSource = Sheet1.Range("A1:A6").Address
- LstMacro.RowSource = Range("A1:A6").Address
- LstMacro.RowSource = "A1:A6"
- LstMacro.RowSource = "abc", với abc là Name đã định nghĩa.

anh ptm cho em hỏi với; anh vui lòng giúp em cái này: ví dụ có 2 file excel 1 file tên là nguồn, 1 file tên là đích em muốn dùng vba tạo 1 list box trong 1 userform tên là main nằm trong file nguồn, dữ liệu trong list box được lưu tại sheet1 theo thứ tự cột A hàng 1 là minh, hàng 2 là hoa, hàng 3 là hiếu của file có tên là đích. khi click vào list box thì nó xổ xuống minh, hoa, hiếu; click vào hiếu thì hiện thông báo hiếu
 

File đính kèm

  • hoi tao list box.rar
    7.2 KB · Đọc: 155
Upvote 0
Mình làm thế này
Mã:
Private Sub CommandButton1_Click()
    ListBox1.ColumnCount = 5
    ListBox1.List = Sheets(1).Range(" A1:A6 ").Value
    ListBox1.ColumnWidths = "50,40,40,40,40"
End Sub
 
Upvote 0
Nhờ mọi người chỉ giúp
Đoạn Code dưới đây của mình khi chạy nó báo lỗi dòng .RowSource ....

Sub Hien_du_lieu()
On Error Resume Next
Dim ws As Worksheet
Dim wsd As Worksheet

Set ws = ThisWorkbook.Sheets("Nhap lieu nop")
Set wsd = ThisWorkbook.Sheets("Hien thi nop")

If Me.Txt_tim_HV.Value <> "" Then
ws.UsedRange.AutoFilter 2, "*" & Me.Txt_tim_HV.Value & "*"
End If

ws.UsedRange.Copy
wsd.Range("A1").PasteSpecial xlPasteValuesAndNumberFormats

ws.AutoFilterMode = False

'''Hien thi so lieu
Dim lastRow As Double
lastRow = Excel.WorksheetFunction.CountA(wsd.Range("A:A"))
If lastRow = 1 Then lastRow = 2

With lsb_hang_hoa_nop
.ColumnCount = 12
.ColumnHeads = True
.ColumnWidths = "20,160,50,60,50,40,40,40,30,50,50,50"
.RowSource = wsd.Name & "!A2:L" & lastRow
End With
End Sub
 
Upvote 0
chào mọi người, mình đang vướng 1 vấn đề về change trong combobox. và cũng xin lỗi vì mình sẽ không upload file lên được.
VĐ: mình khai báo tự động rowsource cho 1 combobox, và mỗi lần mình change thì data của vùng rowsource đó sẽ bị thay đổi, không biết là cái này về mặt bản chất thì có làm được không?
Hiện tại mình làm chương trình không có lỗi. tuy nhiên lại có sự không như mong muốn. khi mình click vào combobox đó để chọn thì nó lại trống rỗng, mặc dù vùng data của nó đã được thay đổi dữ liệu
( ở đây là vùng data là cố định nhá, dữ liệu trên vùng đó thay đổi thôi )
 
Upvote 0
chào mọi người, mình đang vướng 1 vấn đề về change trong combobox. và cũng xin lỗi vì mình sẽ không upload file lên được.
VĐ: mình khai báo tự động rowsource cho 1 combobox, và mỗi lần mình change thì data của vùng rowsource đó sẽ bị thay đổi, không biết là cái này về mặt bản chất thì có làm được không?
Hiện tại mình làm chương trình không có lỗi. tuy nhiên lại có sự không như mong muốn. khi mình click vào combobox đó để chọn thì nó lại trống rỗng, mặc dù vùng data của nó đã được thay đổi dữ liệu
( ở đây là vùng data là cố định nhá, dữ liệu trên vùng đó thay đổi thôi )
Bạn thử sửa chỗ khai báo rowsource theo cách này xem:
_Tên combobox_.RowSource = "_Tên Sheet muốn gán rowsource_!$B$2:$B$3"
Cái địa chỉ cuối ($B$2:$B$3) bạn thay đổi theo nhu cầu của mình nha.
 
Upvote 0
Web KT

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

Back
Top Bottom