quyenpv
Thu nhặt kiến thức
- Tham gia
 - 5/1/13
 
- Bài viết
 - 729
 
- Được thích
 - 101
 
- 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
	
	
	  
