Hongha0412
Thành viên mới
- Tham gia
- 28/8/17
- Bài viết
- 20
- Được thích
- 8
- Giới tính
- Nam
Sub InSoCai()
Dim sArr(), dArr(), I As Long, J As Long
Dim SoTK As Long, TKno As Long, TKco As Long, Er As Long
SoTK = Sheets("So").Range("D4").Value
With Sheets("T01")
Er = .Range("D" & Rows.Count).End(xlUp).Row
If Er < 7 Then Exit Sub
sArr = .Range("D7:D" & Er).Resize(, 7).Value
End With
ReDim dArr(1 To UBound(sArr), 1 To 6)
For I = 1 To UBound(sArr)
If sArr(I, 5) <> Empty Then TKno = Left(sArr(I, 5), 3)
If sArr(I, 6) <> Empty Then TKco = Left(sArr(I, 6), 3)
If TKno = SoTK Or TKco = SoTK Then
K = K + 1
For J = 1 To 4
dArr(K, J) = sArr(I, J)
Next J
If TKno = SoTK Then dArr(K, 5) = sArr(I, 7)
If TKco = SoTK Then dArr(K, 6) = sArr(I, 7)
End If
Next I
With Sheets("So")
.Range("A13:F5000").Clear
If K Then
With .Range("A13").Resize(K, 6)
.Value = dArr
.Borders.LineStyle = xlContinuous
.Borders(xlInsideHorizontal).Weight = xlHairline
End With
Er = .Range("A" & Rows.Count).End(xlUp).Row
.Range("A13:A" & Er).HorizontalAlignment = xlCenter
.Range("C13:C" & Er).HorizontalAlignment = xlLeft
Union(.Range("B13:B" & Er), .Range("E13:F" & Er)).HorizontalAlignment = xlRight
.Range("E13:F" & Er).NumberFormat = "#,##0"
.Range("C" & Er + 1) = .Range("J4")
.Range("E" & Er + 1) = "=Sum(E13:E" & Er & ")"
.Range("F" & Er + 1) = "=Sum(F13:F" & Er & ")"
With .Range("A" & Er + 1 & ": F" & Er + 1)
.Borders.LineStyle = xlContinuous
.Font.Bold = True
End With
.Range("D" & Er + 3) = .Range("J3")
.Range("A" & Er + 4) = .Range("J2"): .Range("A" & Er + 9) = .Range("J5")
.Range("D" & Er + 4) = .Range("J4"): .Range("D" & Er + 9) = .Range("J6")
.Range("A" & Er + 4 & ": C" & Er + 9).HorizontalAlignment = xlCenterAcrossSelection
.Range("D" & Er + 3 & ": F" & Er + 9).HorizontalAlignment = xlCenterAcrossSelection
ActiveSheet.PageSetup.PrintArea = "$A$1:$F" & Er + 9
End If
End With
End Sub
Sao Dim str... nhiều vạyMã:Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$4" Or Target.Address = "$G$1" Then Call SoCai End Sub Public Sub SoCai() Dim sArr(), dArr(), R As Long, I As Long, J As Long, K As Long, TK As Long, Col As Long, Sh As String, col2 As Long Dim Str1 As String, Str2 As String, Str3 As String, Str4 As String, Str5 As String, Str6 As String Sh = [G1].Value With Sheets(Sh) sArr = .Range(.[D7], .[D7].End(xlDown)).Resize(, 7).Value End With ReDim dArr(1 To UBound(sArr, 1), 1 To 6) With Sheets("So") TK = .Range("D4").Value Str1 = .[J1].Value: Str2 = .[J2].Value Str3 = .[J3].Value: Str4 = .[J4].Value Str5 = .[J5].Value: Str6 = .[J6].Value For I = 1 To UBound(sArr, 1) If sArr(I, 5) = TK Or sArr(I, 6) = TK Then K = K + 1 Col = IIf(sArr(I, 5) = Tk Dim Str1 As String, Str2 As String, Str3 As String, Str4 As String, Str5 As String, Str6 As String Sh = [G1].Value With Sheets(Sh) sArr = .Range(.[D7], .[D7].End(xlDown)).Resize(, 7).Value End With ReDim dArr(1 To UBound(sArr, 1), 1 To 6) With Sheets("So") TK = .Range("D4").Value Str1 = .[J1].Value: Str2 = .[J2].Value Str3 = .[J3].Value: Str4 = .[J4].Value Str5 = .[J5].Value: Str6 = .[J6].Value For I = 1 To UBound(sArr, 1) If sArr(I, 5) = TK Or sArr(I, 6) = TK Then K = K + 1 Col = IIf(sArr(I, 5) = TK, 5, 6) For J = 1 To 3 For J = 1 To 3 dArr(K, J) = sArr(I, J) Next J dArr(K, Col) = sArr(I, 7) dArr(K, 4) = sArr(I, IIf(sArr(I, 5) = TK, 6, 5)) End If Next I TK = .Range("D4").Value Str1 = .[J1].Value: Str2 = .[J2].Value Str3 = .[J3].Value: Str4 = .[J4].Value Str5 = .[J5].Value: Str6 = .[J6].Value For I = 1 To UBound(sArr, 1) If sArr(I, 5) = TK Or sArr(I, 6) = TK Then K = K + 1 Col = IIf(sArr(I, 5) = TK, 5, 6) For J = 1 To 3 dArr(K, J) = sArr(I, J) Next J Dim Str1 As String, Str2 As String, Str3 As String, Str4 As String, Str5 As String, Str6 As String Sh = [G1].Value With Sheets(Sh) sArr = .Range(.[D7], .[D7].End(xlDown)).Resize(, 7).Value End With ReDim dArr(1 To UBound(sArr, 1), 1 To 6) With Sheets("So") TK = .Range("D4").Value Str1 = .[J1].Value: Str2 = .[J2].Value Str3 = .[J3].Value: Str4 = .[J4].Value Str5 = .[J5].Value: Str6 = .[J6].Value For I = 1 To UBound(sArr, 1) If sArr(I, 5) = TK Or sArr(I, 6) = TK Then K = K + 1 Col = IIf(sArr(I, 5) = TK, 5, 6) For J = 1 To 3 Dim Str1 As String, Str2 As String, Str3 As String, Str4 As String, Str5 As String, Str6 As String Sh = [G1].Value With Sheets(Sh) sArr = .Range(.[D7], .[D7].End(xlDown)).Resize(, 7).Value End With ReDim dArr(1 To UBound(sArr, 1), 1 To 6) With Sheets("So") TK = .Range("D4").Value Str1 = .[J1].Value: Str2 = .[J2].Value Str3 = .[J3].Value: Str4 = .[J4].Value Str5 = .[J5].Value: Str6 = .[J6].Value For I = 1 To UBound(sArr, 1) If sArr(I, 5) = TK Or sArr(I, 6) = TK Then K = K + 1 Col = IIf(sArr(I, 5) = TK, 5, 6) For J = 1 To 3 Dim Str1 As String, Str2 As String, Str3 As String, Str4 As String, Str5 As String, Str6 As String Sh = [G1].Value With Sheets(Sh) sArr = .Range(.[D7], .[D7].End(xlDown)).Resize(, 7).Value End With ReDim dArr(1 To UBound(sArr, 1), 1 To 6) With Sheets("So") TK = .Range("D4").Value Str1 = .[J1].Value: Str2 = .[J2].Value Str3 = .[J3].Value: Str4 = .[J4].Value Str5 = .[J5].Value: Str6 = .[J6].Value For I = 1 To UBound(sArr, 1) If sArr(I, 5) = TK Or sArr(I, 6) = TK Then K = K + 1 Col = IIf(sArr(I, 5) = TK, 5, 6) For J = 1 To 3 Dim Str1 As String, Str2 As String, Str3 As String, Str4 As String, Str5 As String, Str6 As String Sh = [G1].Value With Sheets(Sh) Dim Str1 As String, Str2 As String, Str3 As String, Str4 As String, Str5 As String, Str6 As String Sh = [G1].Value With Sheets(Sh) sArr = .Range(.[D7], .[D7].End(xlDown)).Resize(, 7).Value End With ReDim dArr(1 To UBound(sArr, 1), 1 To 6) With Sheets("So") TK = .Range("D4").Value Str1 = .[J1].Value: Str2 = .[J2].Value Str3 = .[J3].Value: Str4 = .[J4].Value Str5 = .[J5].Value: Str6 = .[J6].Value For I = 1 To UBound(sArr, 1) If sArr(I, 5) = TK Or sArr(I, 6) = TK Then K = K + 1 Col = IIf(sArr(I, 5) = TK, 5, 6) For J = 1 To 3 sArr = .Range(.[D7], .[D7].End(xlDown)).Resize(, 7).Value End With ReDim dArr(1 To UBound(sArr, 1), 1 To 6) With Sheets("So") TK = .Range("D4").Value Str1 = .[J1].Value: Str2 = .[J2].Value Str3 = .[J3].Value: Str4 = .[J4].Value Str5 = .[J5].Value: Str6 = .[J6].Value For I = 1 To UBound(sArr, 1) If sArr(I, 5) = TK Or sArr(I, 6) = TK Then K = K + 1 Col = IIf(sArr(I, 5) = TK, 5, 6) For J = 1 To 3 dArr(K, Col) = sArr(I, 7) dArr(K, 4) = sArr(I, IIf(sArr(I, 5) = TK, 6, 5)) End If Dim Str1 As String, Str2 As String, Str3 As String, Str4 As String, Str5 As String, Str6 As String Sh = [G1].Value With Sheets(Sh) sArr = .Range(.[D7], .[D7].End(xlDown)).Resize(, 7).Value End With ReDim dArr(1 To UBound(sArr, 1), 1 To 6) With Sheets("So") TK = .Range("D4").Value Str1 = .[J1].Value: Str2 = .[J2].Value Str3 = .[J3].Value: Str4 = .[J4].Value Str5 = .[J5].Value: Str6 = .[J6].Value For I = 1 To UBound(sArr, 1) If sArr(I, 5) = TK Or sArr(I, 6) = TK Then K = K + 1 Col = IIf(sArr(I, 5) = TK, 5, 6) For J = 1 To 3Dim Str1 As String, Str2 As String, Str3 As String, Str4 As String, Str5 As String, Str6 As String Sh = [G1].Value With Sheets(Sh) sArr = .Range(.[D7], .[D7].End(xlDown)).Resize(, 7).Value End With ReDim dArr(1 To UBound(sArr, 1), 1 To 6) With Sheets("So") TK = .Range("D4").Value Str1 = .[J1].Value: Str2 = .[J2].Value Str3 = .[J3].Value: Str4 = .[J4].Value Str5 = .[J5].Value: Str6 = .[J6].Value For I = 1 To UBound(sArr, 1) If sArr(I, 5) = TK Or sArr(I, 6) = TK Then K = K + 1 Col = IIf(sArr(I, 5) = TK, 5, 6) For J = 1 To 3 Next I .[A13:H1000].ClearContents .[A13:H1000].Borders.LineStyle = xlNone .[A13:H1000].Font.Bold = False .[F13:F1000].HorizontalAlignment = xlGeneral If K Then .[A13].Resize(K, 6) = dArr .[A13].Resize(K + 1, 6).Borders.LineStyle = xlContinuous .[A13].Resize(K, 6).Borders(xlInsideHorizontal).Weight = xlHairline .[C13].Offset(K) = Str1 .[E13].Offset(K + 2) = Str3 .[D13].Offset(K).Resize(, 4).Font.Bold = True .[E13:F13].Offset(K) = "=SUM(R13C:R[-1]C)" 'Cong tong Thu, Chi) .[B13].Offset(K + 3) = Str2 .[B13].Offset(K + 8) = Str5 .[E13].Offset(K + 3) = Str4 .[E13].Offset(K + 8) = Str6 .[E13].Offset(K + 2).Resize(7).HorizontalAlignment = xlCenter Else End If With Sheets("So") col2 = [k1].Value ActiveSheet.PageSetup.PrintArea = "$A$1:$F" & col2 End With End With End Sub
Em cũng thắc mắc sao anh ấy dim lại nhiều lần thế với mục đích gì vậy nhỉSao Dim str... nhiều vạy
Thà xử lầm không tha lầmEm cũng thắc mắc sao anh ấy dim lại nhiều lần thế với mục đích gì vậy nhỉ
Chỉnh lại các dòng đầuTôi có file dùng để in sổ kế toán cần sửa code do có tình huống phát sinh mới.
Ví dụ: cần in sổ TK642 (TK chi tiết là 6421,6422), thì trong dữ liệu chỉ có 6421,6422, nên chưa thể in TK642 được.
Yêu cầu cụ thể trong file đính kèm.
Public Sub SoCai()
Dim sArr(), dArr(), R As Long, I As Long, J As Long, K As Long, Col As Long, Sh As String, col2 As Long
Dim TK As String, Str1 As String, Str2 As String, Str3 As String, Str4 As String, Str5 As String, Str6 As String
Sh = [G1].Value
With Sheets(Sh)
sArr = .Range(.[D7], .[D7].End(xlDown)).Resize(, 7).Value
End With
ReDim dArr(1 To UBound(sArr, 1), 1 To 6)
With Sheets("So")
TK = .Range("D4").Value & "*"
Str1 = .[J1].Value: Str2 = .[J2].Value
Str3 = .[J3].Value: Str4 = .[J4].Value
Str5 = .[J5].Value: Str6 = .[J6].Value
For I = 1 To UBound(sArr, 1)
If CStr(sArr(I, 5)) Like TK Or CStr(sArr(I, 6)) Like TK Then
K = K + 1
Col = IIf(CStr(sArr(I, 5)) Like TK, 5, 6)
For J = 1 To 3
dArr(K, J) = sArr(I, J)
Next J
dArr(K, Col) = sArr(I, 7)
dArr(K, 4) = sArr(I, IIf(CStr(sArr(I, 5)) Like TK, 6, 5))
End If
Next I
....
chết cha rồi Cô giáo. Mình bị Ctrl V bị lố rồi. Xin lỗi cô giáoSao Dim str... nhiều vạy
Ctrl V bị nhầm bác ơi. Mình sửa lại rồiEm cũng thắc mắc sao anh ấy dim lại nhiều lần thế với mục đích gì vậy nhỉ
Theo thầy. Để triệt để phát sinh thì xử lầm còn hơn tha lầm ạ.Thà xử lầm không tha lầm
Cảm ơn mọi người đã quan tâm và giúp đỡ.Thà xử lầm không tha lầm
Chỉnh lại các dòng đầu
Mã:Public Sub SoCai() Dim sArr(), dArr(), R As Long, I As Long, J As Long, K As Long, Col As Long, Sh As String, col2 As Long Dim TK As String, Str1 As String, Str2 As String, Str3 As String, Str4 As String, Str5 As String, Str6 As String Sh = [G1].Value With Sheets(Sh) sArr = .Range(.[D7], .[D7].End(xlDown)).Resize(, 7).Value End With ReDim dArr(1 To UBound(sArr, 1), 1 To 6) With Sheets("So") TK = .Range("D4").Value & "*" Str1 = .[J1].Value: Str2 = .[J2].Value Str3 = .[J3].Value: Str4 = .[J4].Value Str5 = .[J5].Value: Str6 = .[J6].Value For I = 1 To UBound(sArr, 1) If CStr(sArr(I, 5)) Like TK Or CStr(sArr(I, 6)) Like TK Then K = K + 1 Col = IIf(CStr(sArr(I, 5)) Like TK, 5, 6) For J = 1 To 3 dArr(K, J) = sArr(I, J) Next J dArr(K, Col) = sArr(I, 7) dArr(K, 4) = sArr(I, IIf(CStr(sArr(I, 5)) Like TK, 6, 5)) End If Next I ....
Cài hoa lá cành sao nó lại dài thếCảm ơn mọi người đã quan tâm và giúp đỡ.
Sau khi test lại, code đã hoạt động đúng ý.
Còn cái code cũ, cũng do mọi người chỉnh sửa giùm, nhưng sau đó mình có sửa thêm cho phù hợp, nên có thể nó hơi lung củng
Sub InSoCai()
Dim sArr(), dArr(), I As Long, J As Long
Dim SoTK As Long, TKno As Long, TKco As Long, Er As Long
SoTK = Sheets("So").Range("D4").Value
With Sheets("T01")
Er = .Range("D" & Rows.Count).End(xlUp).Row
If Er < 7 Then Exit Sub
sArr = .Range("D7:D" & Er).Resize(, 7).Value
End With
ReDim dArr(1 To UBound(sArr), 1 To 6)
For I = 1 To UBound(sArr)
If sArr(I, 5) <> Empty Then TKno = Left(sArr(I, 5), 3)
If sArr(I, 6) <> Empty Then TKco = Left(sArr(I, 6), 3)
If TKno = SoTK Or TKco = SoTK Then
K = K + 1
For J = 1 To 4
dArr(K, J) = sArr(I, J)
Next J
If TKno = SoTK Then dArr(K, 5) = sArr(I, 7)
If TKco = SoTK Then dArr(K, 6) = sArr(I, 7)
End If
Next I
With Sheets("So")
.Range("A13:F5000").Clear
If K Then
With .Range("A13").Resize(K, 6)
.Value = dArr
.Borders.LineStyle = xlContinuous
.Borders(xlInsideHorizontal).Weight = xlHairline
End With
Er = .Range("A" & Rows.Count).End(xlUp).Row
.Range("A13:A" & Er).HorizontalAlignment = xlCenter
.Range("C13:C" & Er).HorizontalAlignment = xlLeft
Union(.Range("B13:B" & Er), .Range("E13:F" & Er)).HorizontalAlignment = xlRight
.Range("E13:F" & Er).NumberFormat = "#,##0"
.Range("C" & Er + 1) = .Range("J4")
.Range("E" & Er + 1) = "=Sum(E13:E" & Er & ")"
.Range("F" & Er + 1) = "=Sum(F13:F" & Er & ")"
With .Range("A" & Er + 1 & ": F" & Er + 1)
.Borders.LineStyle = xlContinuous
.Font.Bold = True
End With
.Range("D" & Er + 3) = .Range("J3")
.Range("A" & Er + 4) = .Range("J2"): .Range("A" & Er + 9) = .Range("J5")
.Range("D" & Er + 4) = .Range("J4"): .Range("D" & Er + 9) = .Range("J6")
.Range("A" & Er + 4 & ": C" & Er + 9).HorizontalAlignment = xlCenterAcrossSelection
.Range("D" & Er + 3 & ": F" & Er + 9).HorizontalAlignment = xlCenterAcrossSelection
ActiveSheet.PageSetup.PrintArea = "$A$1:$F" & Er + 9
End If
End With
End Sub
Còn nữa kìa người ơi. Chưa xong được đâu (2 cái For I=.........)chết cha rồi Cô giáo. Mình bị Ctrl V bị lố rồi. Xin lỗi cô giáo
Code chạy ok quá. Mà giờ muốn đổi cái font chữ sang times new roman thì sửa chỗ nào vậy bạn.Cài hoa lá cành sao nó lại dài thế
Mã:Sub InSoCai() Dim sArr(), dArr(), I As Long, J As Long Dim SoTK As Long, TKno As Long, TKco As Long, Er As Long SoTK = Sheets("So").Range("D4").Value With Sheets("T01") Er = .Range("D" & Rows.Count).End(xlUp).Row If Er < 7 Then Exit Sub sArr = .Range("D7:D" & Er).Resize(, 7).Value End With ReDim dArr(1 To UBound(sArr), 1 To 6) For I = 1 To UBound(sArr) If sArr(I, 5) <> Empty Then TKno = Left(sArr(I, 5), 3) If sArr(I, 6) <> Empty Then TKco = Left(sArr(I, 6), 3) If TKno = SoTK Or TKco = SoTK Then K = K + 1 For J = 1 To 4 dArr(K, J) = sArr(I, J) Next J If TKno = SoTK Then dArr(K, 5) = sArr(I, 7) If TKco = SoTK Then dArr(K, 6) = sArr(I, 7) End If Next I With Sheets("So") .Range("A13:F5000").Clear If K Then With .Range("A13").Resize(K, 6) .Value = dArr .Borders.LineStyle = xlContinuous .Borders(xlInsideHorizontal).Weight = xlHairline End With Er = .Range("A" & Rows.Count).End(xlUp).Row .Range("A13:A" & Er).HorizontalAlignment = xlCenter .Range("C13:C" & Er).HorizontalAlignment = xlLeft Union(.Range("B13:B" & Er), .Range("E13:F" & Er)).HorizontalAlignment = xlRight .Range("E13:F" & Er).NumberFormat = "#,##0" .Range("C" & Er + 1) = .Range("J4") .Range("E" & Er + 1) = "=Sum(E13:E" & Er & ")" .Range("F" & Er + 1) = "=Sum(F13:F" & Er & ")" With .Range("A" & Er + 1 & ": F" & Er + 1) .Borders.LineStyle = xlContinuous .Font.Bold = True End With .Range("D" & Er + 3) = .Range("J3") .Range("A" & Er + 4) = .Range("J2"): .Range("A" & Er + 9) = .Range("J5") .Range("D" & Er + 4) = .Range("J4"): .Range("D" & Er + 9) = .Range("J6") .Range("A" & Er + 4 & ": C" & Er + 9).HorizontalAlignment = xlCenterAcrossSelection .Range("D" & Er + 3 & ": F" & Er + 9).HorizontalAlignment = xlCenterAcrossSelection ActiveSheet.PageSetup.PrintArea = "$A$1:$F" & Er + 9 End If End With End Sub
Cài hoa lá cành sao nó lại dài thế
Mã:Sub InSoCai() Dim sArr(), dArr(), I As Long, J As Long Dim SoTK As Long, TKno As Long, TKco As Long, Er As Long SoTK = Sheets("So").Range("D4").Value With Sheets("T01") Er = .Range("D" & Rows.Count).End(xlUp).Row If Er < 7 Then Exit Sub sArr = .Range("D7:D" & Er).Resize(, 7).Value End With ReDim dArr(1 To UBound(sArr), 1 To 6) For I = 1 To UBound(sArr) If sArr(I, 5) <> Empty Then TKno = Left(sArr(I, 5), 3) If sArr(I, 6) <> Empty Then TKco = Left(sArr(I, 6), 3) If TKno = SoTK Or TKco = SoTK Then K = K + 1 For J = 1 To 4 dArr(K, J) = sArr(I, J) Next J If TKno = SoTK Then dArr(K, 5) = sArr(I, 7) If TKco = SoTK Then dArr(K, 6) = sArr(I, 7) End If Next I With Sheets("So") .Range("A13:F5000").Clear If K Then With .Range("A13").Resize(K, 6) .Value = dArr .Borders.LineStyle = xlContinuous .Borders(xlInsideHorizontal).Weight = xlHairline End With Er = .Range("A" & Rows.Count).End(xlUp).Row .Range("A13:A" & Er).HorizontalAlignment = xlCenter .Range("C13:C" & Er).HorizontalAlignment = xlLeft Union(.Range("B13:B" & Er), .Range("E13:F" & Er)).HorizontalAlignment = xlRight .Range("E13:F" & Er).NumberFormat = "#,##0" .Range("C" & Er + 1) = .Range("J4") .Range("E" & Er + 1) = "=Sum(E13:E" & Er & ")" .Range("F" & Er + 1) = "=Sum(F13:F" & Er & ")" With .Range("A" & Er + 1 & ": F" & Er + 1) .Borders.LineStyle = xlContinuous .Font.Bold = True End With .Range("D" & Er + 3) = .Range("J3") .Range("A" & Er + 4) = .Range("J2"): .Range("A" & Er + 9) = .Range("J5") .Range("D" & Er + 4) = .Range("J4"): .Range("D" & Er + 9) = .Range("J6") .Range("A" & Er + 4 & ": C" & Er + 9).HorizontalAlignment = xlCenterAcrossSelection .Range("D" & Er + 3 & ": F" & Er + 9).HorizontalAlignment = xlCenterAcrossSelection ActiveSheet.PageSetup.PrintArea = "$A$1:$F" & Er + 9 End If End With End Sub
Bài đã được tự động gộp:
Còn nữa kìa người ơi. Chưa xong được đâu (2 cái For I=.........)
Sub InSoCai()
Dim sArr(), dArr(), I As Long, J As Long
Dim SoTK As Long, TKno As Long, TKco As Long, Er As Long
SoTK = Sheets("So").Range("D4").Value
With Sheets("T01")
Er = .Range("D" & Rows.Count).End(xlUp).Row
If Er < 7 Then Exit Sub
sArr = .Range("D7:D" & Er).Resize(, 7).Value
End With
ReDim dArr(1 To UBound(sArr), 1 To 6)
For I = 1 To UBound(sArr)
If sArr(I, 5) <> Empty Then TKno = Left(sArr(I, 5), 3)
If sArr(I, 6) <> Empty Then TKco = Left(sArr(I, 6), 3)
If TKno = SoTK Or TKco = SoTK Then
K = K + 1
For J = 1 To 4
dArr(K, J) = sArr(I, J)
Next J
If TKno = SoTK Then dArr(K, 5) = sArr(I, 7)
If TKco = SoTK Then dArr(K, 6) = sArr(I, 7)
End If
Next I
With Sheets("So")
.Range("A13:F5000").Clear
If K Then
With .Range("A13").Resize(K, 6)
.Value = dArr
.Borders.LineStyle = xlContinuous
.Borders(xlInsideHorizontal).Weight = xlHairline
End With
Er = .Range("A" & Rows.Count).End(xlUp).Row
.Range("A13:A" & Er).HorizontalAlignment = xlCenter
.Range("C13:C" & Er).HorizontalAlignment = xlLeft
Union(.Range("B13:B" & Er), .Range("E13:F" & Er)).HorizontalAlignment = xlRight
.Range("E13:F" & Er).NumberFormat = "#,##0"
.Range("C" & Er + 1) = .Range("J4")
.Range("E" & Er + 1) = "=Sum(E13:E" & Er & ")"
.Range("F" & Er + 1) = "=Sum(F13:F" & Er & ")"
With .Range("A" & Er + 1 & ": F" & Er + 1)
.Borders.LineStyle = xlContinuous
.Font.Bold = True
End With
.Range("D" & Er + 3) = .Range("J3")
.Range("A" & Er + 4) = .Range("J2"): .Range("A" & Er + 9) = .Range("J5")
.Range("D" & Er + 4) = .Range("J4"): .Range("D" & Er + 9) = .Range("J6")
.Range("A" & Er + 4 & ": C" & Er + 9).HorizontalAlignment = xlCenterAcrossSelection
.Range("D" & Er + 3 & ": F" & Er + 9).HorizontalAlignment = xlCenterAcrossSelection
ActiveSheet.PageSetup.PrintArea = "$A$1:$F" & Er + 9
End If
End With
End Sub
bạn thử code nàyCode chạy ok quá. Mà giờ muốn đổi cái font chữ sang times new roman thì sửa chỗ nào vậy bạn.
Sub InSoCai()
Dim sArr(), dArr(), I As Long, J As Long
Dim SoTK As Long, TKno As Long, TKco As Long, Er As Long
SoTK = Sheets("So").Range("D4").Value
With Sheets("T01")
Er = .Range("D" & Rows.Count).End(xlUp).Row
If Er < 7 Then Exit Sub
sArr = .Range("D7:D" & Er).Resize(, 7).Value
End With
ReDim dArr(1 To UBound(sArr), 1 To 6)
For I = 1 To UBound(sArr)
If sArr(I, 5) <> Empty Then TKno = Left(sArr(I, 5), 3)
If sArr(I, 6) <> Empty Then TKco = Left(sArr(I, 6), 3)
If TKno = SoTK Or TKco = SoTK Then
K = K + 1
For J = 1 To 4
dArr(K, J) = sArr(I, J)
Next J
If TKno = SoTK Then dArr(K, 5) = sArr(I, 7)
If TKco = SoTK Then dArr(K, 6) = sArr(I, 7)
End If
Next I
With Sheets("So")
.Range("A13:F5000").Clear
If K Then
With .Range("A13").Resize(K, 6)
.Value = dArr
.Borders.LineStyle = xlContinuous
.Borders(xlInsideHorizontal).Weight = xlHairline
End With
Er = .Range("A" & Rows.Count).End(xlUp).Row
.Range("A13:A" & Er).HorizontalAlignment = xlCenter
.Range("C13:C" & Er).HorizontalAlignment = xlLeft
Union(.Range("B13:B" & Er), .Range("E13:F" & Er)).HorizontalAlignment = xlRight
.Range("E13:F" & Er).NumberFormat = "#,##0"
.Range("C" & Er + 1) = .Range("J4")
.Range("E" & Er + 1) = "=Sum(E13:E" & Er & ")"
.Range("F" & Er + 1) = "=Sum(F13:F" & Er & ")"
With .Range("A" & Er + 1 & ": F" & Er + 1)
.Borders.LineStyle = xlContinuous
.Font.Bold = True
End With
.Range("D" & Er + 3) = .Range("J3")
.Range("A" & Er + 4) = .Range("J2"): .Range("A" & Er + 9) = .Range("J5")
.Range("D" & Er + 4) = .Range("J4"): .Range("D" & Er + 9) = .Range("J6")
.Range("A" & Er + 4 & ": C" & Er + 9).HorizontalAlignment = xlCenterAcrossSelection
.Range("D" & Er + 3 & ": F" & Er + 9).HorizontalAlignment = xlCenterAcrossSelection
ActiveSheet.PageSetup.PrintArea = "$A$1:$F" & Er + 9
End If
End With
End Sub
Bạn thêm dòngCode chạy ok quá. Mà giờ muốn đổi cái font chữ sang times new roman thì sửa chỗ nào vậy bạn.
.Range("A13: F" & Er + 9).Font.Name = "Times New Roman"
ActiveSheet.PageSetup.PrintArea = "$A$1:$F" & Er + 9
Code chạy ok quá. Mà giờ muốn đổi cái font chữ sang times new roman thì sửa chỗ nào vậy bạn.
You add row
.Range("A13: F" & Er + 9).Font.Name = "Times New Roman"
in front of the line
ActiveSheet.PageSetup.PrintArea = "$A$1:$F" & Er + 9
before, NOT "in front of"Mã:You add row .Range("A13: F" & Er + 9).Font.Name = "Times New Roman" in front of the line ActiveSheet.PageSetup.PrintArea = "$A$1:$F" & Er + 9
OK I understand. because I'm using google translate. Responsible then googlebefore, NOT "in front of"
in front means:
.Range("A13: F" & Er + 9).Font.Name = "Times New Roman" ActiveSheet.PageSetup.PrintArea = "$A$1:$F" & Er + 9
And,
"You add row" is rather rude, and grammatically incorrect.
"Add the following line" would be more appropriate.
Trời đất ạ. Người Việt Nam nói chuyện với người Việt Nam lại nhờ google translate từ tiếng Việt sang tiếng Anh.OK I understand. because I'm using google translate. Responsible then google
Trời đất ạ. Người Việt Nam nói chuyện với người Việt Nam lại nhờ google translate từ tiếng Việt sang tiếng Anh.
Hậu quả bị mắng là xứng đáng rồi