vova2209
Thành viên tích cực
- Tham gia
- 5/4/17
- Bài viết
- 835
- Được thích
- 112
- Giới tính
- Nam
- Nghề nghiệp
- Đường bộ
Bác nhiều lần cuối thế ... út, ít ụt ....Tôi làm cho bạn lần cuối. Có vấn đề gì thêm thì cứ nhờ mọi người, đừng gọi tên tôi. Nếu tôi có hứng thì tôi sẽ tự tham gia.
Muốn thế thì sau khi lấy dữ liệu vào mảng ArrayData thì duyệt từng dòng của nó và định dạng thích hợp cho cột 4.
Nếu thế thì phải gán cho mỗi dòng dữ liệu trong mảng ArrayData, cũng đồng thời là trong ListBox, chỉ số dòng của nó trên sheet. Khi click mục trong ListBox thì đọc ra chỉ số dong trên sheet của mục được chọn. "Gán" được thực hiện bằng cách sau khi lấy dữ liệu vào mảng ArrayData thì duyệt từng dòng của nó và nhâp chỉ số dòng trên sheet của dòng hiện hành vào cột cuối cùng được thêm sau khi nhập dữ liệu vào ArrayData. Khi click thì đọc ra chỉ số dòng từ cột cuối. Thế thôi.
1. sửa thành
2. ThêmMã:Sub ganSourceListbox() Dim k As Long Dim lastRow As Long With ThisWorkbook.Worksheets("Don Gia Nhan Cong") MaxCol = .Range("A3").End(xlToRight).Column lastRow = .Cells(Rows.Count, "A").End(xlUp).Row If lastRow < 4 Then Exit Sub ' lastRow trong truong hop nay khong chua du lieu. Di len tren toi khi gap gia tri <> "" For k = lastRow To 4 Step -1 If Len(.Range("A" & k).Value) Then Exit For Next k MaxRow = k - 3 ' lay du lieu vao mang ArrayData ArrayData = .Range("A4").Resize(MaxRow, MaxCol).Value End With ' them 1 cot cuoi vao mang ArrayData ReDim Preserve ArrayData(1 To UBound(ArrayData, 1), 1 To MaxCol + 1) ' duyet tung dong cua mang ArrayData For k = 1 To UBound(ArrayData, 1) ' ghi chi so dong tren sheet cua muc hien hanh vao cot cuoi da them ArrayData(k, MaxCol) = k + 3 ' dinh dang cot DON GIA ArrayData(k, 4) = Format(ArrayData(k, 4), "#,##0.00") ' neu DON GI khong co phan thap phan thi Format(ArrayData(k, 4), "#,##0") Next k ReDim TempArr(1 To MaxRow, 1 To MaxCol) ' nhap mang ArrayData vao ListBox Me.lstDanhSachVPP.List = ArrayData End Sub
Mã:Private Sub lstDanhSachVPP_Change() Dim r As Long With lstDanhSachVPP If .ListIndex < 0 Then Exit Sub ' doc ra chi so dong tren sheet cua muc duoc chon r = .List(.ListIndex, MaxCol - 1) End With ' chon o o dong r va cot D ThisWorkbook.Worksheets("Don Gia Nhan Cong").Range("D" & r).Select End Sub
Tôi chả hiểu "Định dạng kẻ dòng list" là gì. Cũng chả biết "dòng list" là dòng gì. Hãy tập giải thích cho người khác, kể cả những người chậm hiểu như tôi, hiểu ý của mình. Vấn đề của mình mà muốn nhanh nhanh, tốn ít công sức thời gian thì tôi bó tay.
Như bài #7 thôi: View -> Object Browser -> ListBox -> BoundColumn -> F1
Hoặc gú gồ.
Chỉ nên hỏi những cái không tự làm được. Bạn biết đọc, biết dịch thì sao tôi lại phải đọc và dịch thay bạn?
Êêê, tôi viếtBác nhiều lần cuối thế ... út, ít ụt ....
Có chữ NẾU mà.Lần cuối cùng tôi trả lời bạn nếu bạn còn chơi ảnh thay tập tin
được rồi bạn! mình cảm ơn, để mình vận động hơn chút..cảm ơn nhiều ^^!Tôi làm cho bạn lần cuối. Có vấn đề gì thêm thì cứ nhờ mọi người, đừng gọi tên tôi. Nếu tôi có hứng thì tôi sẽ tự tham gia.
Muốn thế thì sau khi lấy dữ liệu vào mảng ArrayData thì duyệt từng dòng của nó và định dạng thích hợp cho cột 4.
Nếu thế thì phải gán cho mỗi dòng dữ liệu trong mảng ArrayData, cũng đồng thời là trong ListBox, chỉ số dòng của nó trên sheet. Khi click mục trong ListBox thì đọc ra chỉ số dong trên sheet của mục được chọn. "Gán" được thực hiện bằng cách sau khi lấy dữ liệu vào mảng ArrayData thì duyệt từng dòng của nó và nhâp chỉ số dòng trên sheet của dòng hiện hành vào cột cuối cùng được thêm sau khi nhập dữ liệu vào ArrayData. Khi click thì đọc ra chỉ số dòng từ cột cuối. Thế thôi.
1. sửa thành
2. ThêmMã:Sub ganSourceListbox() Dim k As Long Dim lastRow As Long With ThisWorkbook.Worksheets("Don Gia Nhan Cong") MaxCol = .Range("A3").End(xlToRight).Column lastRow = .Cells(Rows.Count, "A").End(xlUp).Row If lastRow < 4 Then Exit Sub ' lastRow trong truong hop nay khong chua du lieu. Di len tren toi khi gap gia tri <> "" For k = lastRow To 4 Step -1 If Len(.Range("A" & k).Value) Then Exit For Next k MaxRow = k - 3 ' lay du lieu vao mang ArrayData ArrayData = .Range("A4").Resize(MaxRow, MaxCol).Value End With ' them 1 cot cuoi vao mang ArrayData ReDim Preserve ArrayData(1 To UBound(ArrayData, 1), 1 To MaxCol + 1) ' duyet tung dong cua mang ArrayData For k = 1 To UBound(ArrayData, 1) ' ghi chi so dong tren sheet cua muc hien hanh vao cot cuoi da them ArrayData(k, MaxCol + 1) = k + 3 ' dinh dang cot DON GIA ArrayData(k, 4) = Format(ArrayData(k, 4), "#,##0.00") ' neu DON GI khong co phan thap phan thi Format(ArrayData(k, 4), "#,##0") Next k ReDim TempArr(1 To MaxRow, 1 To MaxCol) ' nhap mang ArrayData vao ListBox Me.lstDanhSachVPP.List = ArrayData End Sub
Mã:Private Sub lstDanhSachVPP_Change() Dim r As Long With lstDanhSachVPP If .ListIndex < 0 Then Exit Sub ' doc ra chi so dong tren sheet cua muc duoc chon r = .List(.ListIndex, MaxCol) End With ' chon o o dong r va cot D ThisWorkbook.Worksheets("Don Gia Nhan Cong").Range("D" & r).Select End Sub
Tôi chả hiểu "Định dạng kẻ dòng list" là gì. Cũng chả biết "dòng list" là dòng gì. Hãy tập giải thích cho người khác, kể cả những người chậm hiểu như tôi, hiểu ý của mình. Vấn đề của mình mà muốn nhanh nhanh, tốn ít công sức thời gian thì tôi bó tay.
Như bài #7 thôi: View -> Object Browser -> ListBox -> BoundColumn -> F1
Hoặc gú gồ.
Chỉ nên hỏi những cái không tự làm được. Bạn biết đọc, biết dịch thì sao tôi lại phải đọc và dịch thay bạn?
Bác tham khảo file đính kèm xem đã đính ý bác chưa nhé.Anh chị giúp em code tìm kiếm:
VD khi đánh chữ "cắt" thì sẽ tìm được những dòng nào có chữ cắt hiện lên form, khi kích đúp vào thì sẽ đi đến vị trí dòng đó
Mong anh chị giúp đỡ em!
View attachment 231570