Giúp load mảng lên listbox trong Form

Liên hệ QC

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

  • ListArr.xls
    34.5 KB · Đọc: 93
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
Back
Top Bottom