NguyenthiH
Thành viên mới đăng ký
- Tham gia
- 11/12/16
- Bài viết
- 965
- Được thích
- 175
- Giới tính
- Nữ
Em có đoạn code này của Anh HieuCD làm dùm trong File này code "thanhtien"
và code:
Mong anh HieuCD và các Anh giải thích chổ các ký tự đặc biệt này, sao lúc là "!@#", lúc là "#"
Em cám ơn.
Mã:
Sub ThanhTien()
Dim Dic As Object, Darr(), Darr2(), Arr(), i As Long, tmp As String
If Sheets("Sheet2").Range("B65500").End(xlUp).Row <= 3 Or Sheets("Sheet1").Range("A65500").End(xlUp).Row <= 3 Then Exit Sub
Set Dic = CreateObject("Scripting.Dictionary")
Darr = Sheets("Sheet1").Range("A4:C" & Sheets("Sheet1").Range("A65500").End(xlUp).Row).Value
For i = 1 To UBound(Darr)
tmp = Darr(i, 1) & [B][COLOR=#ff0000]"!@#[/COLOR][/B]" & Darr(i, 2)
If Not Dic.exists(tmp) Then Dic.Add tmp, Darr(i, 3)
Next i
Darr = Sheets("Sheet2").Range("D4:F" & Sheets("Sheet2").Range("B65500").End(xlUp).Row).Value
ReDim Arr(1 To UBound(Darr), 1 To 1)
For i = 1 To UBound(Darr)
tmp = Darr(i, 1) & "[B][COLOR=#ff0000]!@#[/COLOR][/B]" & Darr(i, 2)
If Dic.exists(tmp) Then Arr(i, 1) = Darr(i, 3) * Dic.Item(tmp)
Next i
Set Dic = Nothing
Sheets("Sheet2").Range("G4:G" & Sheets("Sheet2").Range("B65500").End(xlUp).Row).Value = Arr
Range("A4").Select
End Sub
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
If Target.Value < 1 Or Target.Value > 12 Then Exit Sub
If Sheets("Sheet2").Range("B65500").End(xlUp).Row <= 3 Then Exit Sub
Dim Dic As Object, Darr(), Arr1(), Arr2(), Arr3(), i As Long, k1 As Long, k2 As Long, k3 As Long, tmp1 As String, tmp2 As String, tmp3 As String
Set Dic = CreateObject("Scripting.Dictionary")
Darr = Sheets("Sheet2").Range("A4:G" & Sheets("Sheet2").Range("A65500").End(xlUp).Row).Value
ReDim Arr1(1 To UBound(Darr), 1 To 3)
ReDim Arr2(1 To UBound(Darr), 1 To 4)
ReDim Arr3(1 To UBound(Darr), 1 To 2)
For i = 1 To UBound(Darr)
If Month(Darr(i, 1)) = Target.Value Then
tmp1 = Darr(i, 3) & [B][COLOR=#ff0000]"#[/COLOR][/B]" & Darr(i, 4)
If Not Dic.exists(tmp1) Then
k1 = k1 + 1: Dic.Add tmp1, k1
Arr1(k1, 1) = Darr(i, 3): Arr1(k1, 2) = Darr(i, 4)
End If
Arr1(Dic.Item(tmp1), 3) = Arr1(Dic.Item(tmp1), 3) + Darr(i, 7)
tmp2 = Darr(i, 2) & [B][COLOR=#ff0000]"#[/COLOR][/B]" & Darr(i, 3) & [B][COLOR=#ff0000]"#[/COLOR][/B]" & Darr(i, 4)
If Not Dic.exists(tmp2) Then
k2 = k2 + 1: Dic.Add tmp2, k2
Arr2(k2, 1) = Darr(i, 2): Arr2(k2, 2) = Darr(i, 3): Arr2(k2, 3) = Darr(i, 4)
End If
Arr2(Dic.Item(tmp2), 4) = Arr2(Dic.Item(tmp2), 4) + Darr(i, 7)
tmp3 = Darr(i, 2)
If Not Dic.exists(tmp3) Then
k3 = k3 + 1: Dic.Add tmp3, k3
Arr3(k3, 1) = Darr(i, 2)
End If
Arr3(Dic.Item(tmp3), 2) = Arr3(Dic.Item(tmp3), 2) + Darr(i, 7)
End If
Next i
Set Dic = Nothing
Sheets("Sheet3").Range("A5:C1000").Clear
Sheets("Sheet3").Range("A5").Resize(k1, 3) = Arr1
Sheets("Sheet3").Range("A4").Resize(k1 + 1, 3).Borders.LineStyle = 1
Sheets("Sheet3").Range("C5").Resize(k1).NumberFormat = "#,##0"
Sheets("Sheet3").Range("E5:H1000").Clear
Sheets("Sheet3").Range("E5").Resize(k2, 4) = Arr2
Sheets("Sheet3").Range("E4").Resize(k2 + 1, 4).Borders.LineStyle = 1
Sheets("Sheet3").Range("H5").Resize(k2).NumberFormat = "#,##0"
' Sheets("Sheet3").Range("A2").Value = Sheets("Sheet3").Range("A2").Value
Sheets("Sheet3").Range("J5:K1000").Clear
Sheets("Sheet3").Range("J5").Resize(k3, 2) = Arr3
Sheets("Sheet3").Range("J4").Resize(k3 + 1, 2).Borders.LineStyle = 1
Sheets("Sheet3").Range("K5").Resize(k3).NumberFormat = "#,##0"
'Sheets("Sheet5").Range("A2").Value = Sheets("Sheet3").Range("A2").Value
End If
End Sub
Em cám ơn.