thao nguyen01
Thành viên thường trực
- Tham gia
- 8/12/19
- Bài viết
- 241
- Được thích
- 30
Kính gửi anh/chị trên diễn đàn,
Em đang bị vướng vấn đề sau ạ:
Em muốn dò tìm cột giảm giá trong sheet Danh muc: Nếu ngày bên sheet Thống kê nằm trong khoảng ngày của Danh mục thì sẽ lấy cột Giảm giá ạ. Em có viết code nhưng chưa ra ạ. Anh/chị xem giúp em ạ. Em cảm ơn nhiều ạ.
Sub thongke03(Dic As Object, arr_D())
Dim i As Long, dcuoi As Long
Dim arr_N()
dcuoi = Sheet2.Range("G10000").End(xlUp).Row
arr_N = Sheet2.Range("G2:I" & dcuoi)
ReDim arr_D(1 To UBound(arr_N, 1), 1 To 3)
For i = 1 To UBound(arr_N, 1)
If Not Dic.exists(">=" & arr_N(i, 1) And "<=" & arr_N(i, 2)) Then
k = k + 1
Dic.Add ">=" & arr_N(i, 1) And "<=" & arr_N(i, 2), k
arr_D(k, 1) = arr_N(i, 1)
arr_D(k, 2) = arr_N(i, 2)
arr_D(k, 3) = arr_N(i, 3)
End If
Next
End Sub
Sub dotim()
Dim i As Long, dcuoi As Long, j As Long, ii As Long
Dim arr_N()
Dim arr_D(), arr_Dotim()
Dim Dic As Object
Set Dic = CreateObject("scripting.dictionary")
Call thongke03(Dic, arr_Dotim)
dcuoi = Sheet1.Range("C10000").End(xlUp).Row
arr_N = Sheet1.Range("C2:C" & dcuoi)
ReDim arr_D(1 To UBound(arr_N, 1), 1 To 2)
For i = 1 To UBound(arr_N, 1)
If Dic.exists(arr_N(i, 1)) Then
j = Dic.Item(arr_N(i, 1))
arr_D(i, 1) = arr_Dotim(j, 3)
End If
Next
Sheet1.Range("G2:H1000").Clear
Sheet1.Range("G2").Resize(UBound(arr_N, 1), 1) = arr_D
End Sub
Em đang bị vướng vấn đề sau ạ:
Em muốn dò tìm cột giảm giá trong sheet Danh muc: Nếu ngày bên sheet Thống kê nằm trong khoảng ngày của Danh mục thì sẽ lấy cột Giảm giá ạ. Em có viết code nhưng chưa ra ạ. Anh/chị xem giúp em ạ. Em cảm ơn nhiều ạ.
Sub thongke03(Dic As Object, arr_D())
Dim i As Long, dcuoi As Long
Dim arr_N()
dcuoi = Sheet2.Range("G10000").End(xlUp).Row
arr_N = Sheet2.Range("G2:I" & dcuoi)
ReDim arr_D(1 To UBound(arr_N, 1), 1 To 3)
For i = 1 To UBound(arr_N, 1)
If Not Dic.exists(">=" & arr_N(i, 1) And "<=" & arr_N(i, 2)) Then
k = k + 1
Dic.Add ">=" & arr_N(i, 1) And "<=" & arr_N(i, 2), k
arr_D(k, 1) = arr_N(i, 1)
arr_D(k, 2) = arr_N(i, 2)
arr_D(k, 3) = arr_N(i, 3)
End If
Next
End Sub
Sub dotim()
Dim i As Long, dcuoi As Long, j As Long, ii As Long
Dim arr_N()
Dim arr_D(), arr_Dotim()
Dim Dic As Object
Set Dic = CreateObject("scripting.dictionary")
Call thongke03(Dic, arr_Dotim)
dcuoi = Sheet1.Range("C10000").End(xlUp).Row
arr_N = Sheet1.Range("C2:C" & dcuoi)
ReDim arr_D(1 To UBound(arr_N, 1), 1 To 2)
For i = 1 To UBound(arr_N, 1)
If Dic.exists(arr_N(i, 1)) Then
j = Dic.Item(arr_N(i, 1))
arr_D(i, 1) = arr_Dotim(j, 3)
End If
Next
Sheet1.Range("G2:H1000").Clear
Sheet1.Range("G2").Resize(UBound(arr_N, 1), 1) = arr_D
End Sub