- Tham gia
- 19/5/19
- Bài viết
- 116
- Được thích
- 9
Sub LapBangThongKe()
Dim Cls As Range: Const FC As String = "-"
Dim Tho As String, THg As String
Dim Rws As Long, W As Integer, VTr As Byte, SoLg As Integer, TTien As Double
Rws = [C4].CurrentRegion.Rows.Count * 5
ReDim Arr(1 To Rws, 1 To 4): [F3].CurrentRegion.Offset(2).ClearContents
For Each Cls In Range([D4], [D4].End(xlDown))
Tho = Cls.Value & FC: THg = Cls.Offset(, -3).Value
SoLg = Cls.Offset(, -2).Value: TTien = Cls.Offset(, -1).Value
Do
VTr = InStr(Tho, FC): If VTr < 1 Then Exit Do
W = W + 1: Arr(W, 2) = THg
Arr(W, 3) = SoLg: Arr(W, 4) = TTien
Arr(W, 1) = Left(Tho, VTr - 1): Tho = Mid(Tho, VTr + 1, Len(Tho))
Loop
Next Cls
[f4].Resize(W, 4).Value = Arr()
End Sub
Đây, macro của bạn:
PHP:Sub LapBangThongKe() Dim Cls As Range: Const FC As String = "-" Dim Tho As String, THg As String Dim Rws As Long, W As Integer, VTr As Byte, SoLg As Integer, TTien As Double Rws = [C4].CurrentRegion.Rows.Count * 5 ReDim Arr(1 To Rws, 1 To 4): [F3].CurrentRegion.Offset(2).ClearContents For Each Cls In Range([D4], [D4].End(xlDown)) Tho = Cls.Value & FC: THg = Cls.Offset(, -3).Value SoLg = Cls.Offset(, -2).Value: TTien = Cls.Offset(, -1).Value Do VTr = InStr(Tho, FC): If VTr < 1 Then Exit Do W = W + 1: Arr(W, 2) = THg Arr(W, 3) = SoLg: Arr(W, 4) = TTien Arr(W, 1) = Left(Tho, VTr - 1): Tho = Mid(Tho, VTr + 1, Len(Tho)) Loop Next Cls [f4].Resize(W, 4).Value = Arr() End Sub
Sub LapBangThongKe()
Dim Cls As Range: Const FC As String = "-"
Dim Tho As String, THg As String
Dim Rws As Long, W As Integer, VTr As Byte, SoLg As Integer, TTien As Double
Rws = [C4].CurrentRegion.Rows.Count * 5
ReDim Arr(1 To Rws, 1 To 4): [F3].CurrentRegion.Offset(2).ClearContents
For Each Cls In Range([D4], [D4].End(xlDown))
Tho = Cls.Value & FC: THg = Cls.Offset(, -3).Value
SoLg = Cls.Offset(, -2).Value: TTien = Cls.Offset(, -1).Value
Do
VTr = InStr(Tho, FC): If VTr < 1 Then Exit Do
W = W + 1: Arr(W, 2) = THg
Arr(W, 3) = SoLg: Arr(W, 4) = TTien * SoLg '** '
Arr(W, 1) = Left(Tho, VTr - 1): Tho = Mid(Tho, VTr + 1, Len(Tho))
Loop
Next Cls
[f4].Resize(W, 4).Value = Arr()
End Sub
dạ đúng rồi bác. em muốn ra thành tiền luônThực hiện theo iêu cầu của bạn thì dòng cuối sẽ là 700K chứ nhỉ?
quá tuyệt vời em cảm ơn bácThực hiện theo iêu cầu của bạn thì dòng cuối sẽ là 700K chứ nhỉ?
PHP:Sub LapBangThongKe() Dim Cls As Range: Const FC As String = "-" Dim Tho As String, THg As String Dim Rws As Long, W As Integer, VTr As Byte, SoLg As Integer, TTien As Double Rws = [C4].CurrentRegion.Rows.Count * 5 ReDim Arr(1 To Rws, 1 To 4): [F3].CurrentRegion.Offset(2).ClearContents For Each Cls In Range([D4], [D4].End(xlDown)) Tho = Cls.Value & FC: THg = Cls.Offset(, -3).Value SoLg = Cls.Offset(, -2).Value: TTien = Cls.Offset(, -1).Value Do VTr = InStr(Tho, FC): If VTr < 1 Then Exit Do W = W + 1: Arr(W, 2) = THg Arr(W, 3) = SoLg: Arr(W, 4) = TTien * SoLg '** ' Arr(W, 1) = Left(Tho, VTr - 1): Tho = Mid(Tho, VTr + 1, Len(Tho)) Loop Next Cls [f4].Resize(W, 4).Value = Arr() End Sub
Bài này khó ở chỗ trình bày yêu cầu chưa rõ rệt.Chắc bài này khó quá, nên diễn đàn này làm không nổi! hehe.