diemhuyenanh
Thành viên hoạt động



- Tham gia
- 6/9/09
- Bài viết
- 167
- Được thích
- 58
chào các anh chị trên GPE. em đang tập viết code với mảng nhưng em gặp trường hợp với mảng 1 chiều khi gán xuống sheet thì không đúng. nhờ anh chị chỉ giáo giúp em xem code sai ở chỗ nào với ạ
Option Base 1
Sub thuthekho()
Dim Arr(), Darr(), tArr(), i, k As Long, Dkdau, Dkcuoi As Date, Dkma As Variant
With Sheets("sheet1")
Dkdau = .Range("H1")
dkcuoi = .Range("H2")
Dkma = .Range("I1")
Arr = .Range("A1:C" & .Range("B56636").End(xlUp).Row).Value
End With
ReDim tArr(1 To UBound(Arr, 1))
ReDim Darr(1 To UBound(Arr, 1), 1 To 2)
For i = 1 To UBound(Arr, 1)
If Arr(i, 1) >= Dkdau And Arr(i, 1) < dkcuoi And Arr(i, 2) = Dkma Then
k = k + 1
tArr(k) = Arr(i, 3)
Darr(k, 1) = Arr(i, 2)
Darr(k, 2) = Arr(i, 1)
End If
Next
Sheets("sheet1").Range("K1").Resize(UBound(Darr, 1), 2) = Darr
Sheets("sheet1").Range("M1").Resize(UBound(tArr, 1), 1) = tArr
End Sub
em gởi cả sheet đính kèm mong nhận được sự trợ giúp của các anh chị
Option Base 1
Sub thuthekho()
Dim Arr(), Darr(), tArr(), i, k As Long, Dkdau, Dkcuoi As Date, Dkma As Variant
With Sheets("sheet1")
Dkdau = .Range("H1")
dkcuoi = .Range("H2")
Dkma = .Range("I1")
Arr = .Range("A1:C" & .Range("B56636").End(xlUp).Row).Value
End With
ReDim tArr(1 To UBound(Arr, 1))
ReDim Darr(1 To UBound(Arr, 1), 1 To 2)
For i = 1 To UBound(Arr, 1)
If Arr(i, 1) >= Dkdau And Arr(i, 1) < dkcuoi And Arr(i, 2) = Dkma Then
k = k + 1
tArr(k) = Arr(i, 3)
Darr(k, 1) = Arr(i, 2)
Darr(k, 2) = Arr(i, 1)
End If
Next
Sheets("sheet1").Range("K1").Resize(UBound(Darr, 1), 2) = Darr
Sheets("sheet1").Range("M1").Resize(UBound(tArr, 1), 1) = tArr
End Sub
em gởi cả sheet đính kèm mong nhận được sự trợ giúp của các anh chị
File đính kèm
Lần chỉnh sửa cuối: