Giúp load mảng lên listbox trong Form (2 người xem)

Liên hệ QC

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

hanhpptc

Thành viên tiêu biểu
Tham gia
16/5/08
Bài viết
459
Được thích
320
Nhờ các bạn giúp mình đưa dữ liệu từ mảng vào list trong Form. Loay hoay mãi mà làm không được.
 

File đính kèm

Nhờ các bạn giúp mình đưa dữ liệu từ mảng vào list trong Form. Loay hoay mãi mà làm không được.
1/ Chưa biết dùng Dic làm gì.
2/ Mệnh để Or trong if ngày >= or <= thì sai phải là and
Và đã dùng
sArray = Sheet1.Range("A2:C33").Value
thì sao kg dùng tiếp mà phải Sh.Cell...
If CVDate(sArray(lR, 2)) >= Tungay And CVDate(sArray(lR, 2)) <= Denngay Then
3/ ListLoc.List() = Arr(n) chữ n đây làm gì.
Phải là
ListLoc.List() = Arr()
Và code sửa lại như sau
PHP:
Private Sub THien_Click()
Dim Tungay As Date, Denngay As Date, i As Long
Dim sArray(), Arr(), lR As Long, n As Long, Tmp As String
  On Error Resume Next
  sArray = Sheet1.Range("A2:C33").Value
  Tungay = DateSerial(Year(Tu), Month(Tu), Day(Tu))
  Denngay = DateSerial(Year(Den), Month(Den), Day(Den))
  n = 0
  For lR = 1 To UBound(sArray)
    If CVDate(sArray(lR, 2)) >= Tungay And CVDate(sArray(lR, 2)) <= Denngay Then
      Tmp = sArray(lR, 3)
      n = n + 1
      ReDim Preserve Arr(1 To n)
      Arr(n) = Tmp
    End If
  Next
  ListLoc.List() = Arr()
End Sub
 
Nhờ các bạn giúp mình đưa dữ liệu từ mảng vào list trong Form. Loay hoay mãi mà làm không được.
Code của bạn có 2 chổ sai:
If Sheet1.Cells(lR, 2) >= Tungay Or Sheet1.Cells(lR, 2) <= Denngay Then
Phải sửa thành:
If Sheet1.Cells(lR, 2) >= Tungay And Sheet1.Cells(lR, 2) <= Denngay Then
Và đoạn
ListLoc.List() = Arr(n)
Phải sửa thành:
ListLoc.List() = Arr
--------------
Xin hỏi thêm: Dictionary trong code dùng để lọc duy nhất cột TIỀN à? Vô lý nhỉ?
 
Cám ơn bạn ThuNgi rất nhiều. Mình muốn listCuont có 3 cột thì làm thế nào. Thật sự mảnh mình cũng chưa rành lắm. Đang tập tành học
 
Cám ơn bạn ThuNgi rất nhiều. Mình muốn listCuont có 3 cột thì làm thế nào. Thật sự mảnh mình cũng chưa rành lắm. Đang tập tành học
Sửa code thành vầy:
PHP:
Private Sub THien_Click()
  Dim Tungay As Long, Denngay As Long, lR As Long, n As Long, sArray, Arr()
  On Error Resume Next
  ReDim Arr(1 To 3, 1 To 1)
  sArray = Sheet1.Range("A2:C33").Value
  Tungay = CLng(DateValue(Tu))
  Denngay = CLng(DateValue(Den))
  For lR = 1 To UBound(sArray, 1)
    If CLng(sArray(lR, 2)) >= Tungay And CLng(sArray(lR, 2)) <= Denngay Then
      n = n + 1
      ReDim Preserve Arr(1 To 3, 1 To n)
      Arr(1, n) = sArray(lR, 1)
      Arr(2, n) = sArray(lR, 2)
      Arr(3, n) = sArray(lR, 3)
    End If
  Next
  ListLoc.List() = WorksheetFunction.Transpose(Arr)
End Sub
 
Sửa code thành vầy:
PHP:
Private Sub THien_Click()
  Dim Tungay As Long, Denngay As Long, lR As Long, n As Long, sArray, Arr()
  On Error Resume Next
  ReDim Arr(1 To 3, 1 To 1)
  sArray = Sheet1.Range("A2:C33").Value
  Tungay = CLng(DateValue(Tu))
  Denngay = CLng(DateValue(Den))
  For lR = 1 To UBound(sArray, 1)
    If CLng(sArray(lR, 2)) >= Tungay And CLng(sArray(lR, 2)) <= Denngay Then
      n = n + 1
      ReDim Preserve Arr(1 To 3, 1 To n)
      Arr(1, n) = sArray(lR, 1)
      Arr(2, n) = sArray(lR, 2)
      Arr(3, n) = sArray(lR, 3)
    End If
  Next
  ListLoc.List() = WorksheetFunction.Transpose(Arr)
End Sub
Cane ơn Thầy và Thu Nghi rất nhiều. Em sẽ nghiên cứu về mảng thêm để xử lý tốt dữ liệu.
 
Web KT

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

Back
Top Bottom