quyenpv
Thu nhặt kiến thức
- Tham gia
- 5/1/13
- Bài viết
- 718
- Được thích
- 97
- Giới tính
- Nam
- Nghề nghiệp
- Decode cuộc đời!
Xin chào anh chị!
Mạn phép xin lỗi lại nhờ vả anh chị trên diễn đàn gỡ rối chút ạ. Em có dữ liệu ban đầu tại Sheet CT_BTS có thông tin chi tiết từng loại trong đó em đang muốn lấy dữ liệu các trạm đã quá hạn, còn 3 tháng và 6 tháng để theo dõi. Tuy nhiên code em viết xuất ra Sheet Report toàn bị ghi đè chỉ hiển thị dữ liệu cuối mà em mò mãi không biết sai chỗ nào. Mong anh chị giúp với ạ
Dữ liệu ban đầu
Dữ liệu xuất ra Sheet Report mong muốn
Mạn phép xin lỗi lại nhờ vả anh chị trên diễn đàn gỡ rối chút ạ. Em có dữ liệu ban đầu tại Sheet CT_BTS có thông tin chi tiết từng loại trong đó em đang muốn lấy dữ liệu các trạm đã quá hạn, còn 3 tháng và 6 tháng để theo dõi. Tuy nhiên code em viết xuất ra Sheet Report toàn bị ghi đè chỉ hiển thị dữ liệu cuối mà em mò mãi không biết sai chỗ nào. Mong anh chị giúp với ạ
Dữ liệu ban đầu
Dữ liệu xuất ra Sheet Report mong muốn
Mã:
Sub Run_BTS_Report_QHan()
Dim aTHKI(), aGV(), res(), dic As Object, Wb As Workbook
Dim Rng As Range, RngFormat As Range, fDay As Date, eDay As Date, tDay As Date
Dim sRow&, i&, r&, k&, T&, ik&, Diaban$, tmp
Dim stt&, tR1&, tR2&, fR1&, fR2&, bTd1 As Boolean, bTd2 As Boolean
Dim lastRow
'Xoa du lieu hien huu neu co
Sheets("Report").Select
With Sheets("Report")
'Lay Dong cuoi cung cua BQT_VTU
'Lay dong cuoi cung tai cot Ma Vat tu
lastRow = .Cells(Rows.Count, "G").End(xlUp).Row
If lastRow > 8 Then
'Xoa toan bo bang du lieu hien huu dang co
.Rows("8:" & lastRow).Delete Shift:=xlShiftUp
Else
.Range("A8:K" & lastRow + 1).ClearContents
End If
End With
With Sheets("CT_BTS")
If .FilterMode Then
.ShowAllData
End If
aGV = .Range("A7:N" & .Range("C" & .Rows.Count).End(xlUp).Row).Value
End With
With Sheets("Settings")
aTHKI = .Range("B4:B" & .Range("B" & .Rows.Count).End(xlUp).Row).Value
End With
Set dic = CreateObject("scripting.dictionary")
sRow = UBound(aTHKI)
For i = 1 To sRow
If aTHKI(i, 1) <> Empty Then dic.Item(aTHKI(i, 1)) = i
Next i
sRow = UBound(aGV)
For i = 1 To sRow
Diaban = aGV(i, 5) 'Dia ban huyen/TP
If Diaban <> Empty Then
If aGV(i, 12) <> "" And aGV(i, 12) <= Date Then
If dic.exists(Diaban & "#") = False Then
dic.Add Diaban & "#", ""
ReDim res(1 To sRow, 1 To 10)
k = 0
For r = i To sRow
If aGV(r, 5) = Diaban Then
If aGV(r, 12) <> "" And aGV(r, 12) <= Date And aGV(r, 13) = ActiveWorkbook.Sheets("Report").Range("L4") Then
k = k + 1
res(k, 1) = k
res(k, 2) = aGV(r, 2): res(k, 3) = aGV(r, 3)
res(k, 4) = aGV(r, 4): res(k, 5) = aGV(r, 7)
End If
End If
Next r
Sheets("Report").Select
With Sheets("Report")
'.Range("A4") = "BÁO CÁO DANH SÁCH"
j = .Cells(Rows.Count, "G").End(xlUp).Row
ik = dic.Item(Diaban)
If ik > 0 Then
.Range("A" & j + 1) = aTHKI(ik, 1)
.Range("A" & j + 1).Font.Bold = True
.Range("A" & j + 1).HorizontalAlignment = xlLeft
.Range("A" & j + 1).WrapText = False
.Range("A" & j + 1).Resize(, 10).Interior.Color = RGB(214, 220, 228)
End If
If k Then
.Range("A" & j + 2).Resize(k, 10) = res
End If
End With
End If
End If
End If
Next i
End Sub