Cảm ơn a, tất cả đều chạy tốt a ah

1. Khi nào a có thời gian nhờ a xem giúp e câu hỏi ở bài #63 với.
2. Còn 1 vấn đề nữa là công thức ở cột B e đang dùng "=IF(B9=0;1;B9)", khi xóa dữ liệu ở dòng bên trên thì công thức vẫn chạy tốt, nhưng khi cắt luôn dòng bên trên thì lại báo lỗi. vậy ở đâu mình nên thay bằng công thức nào cho phù hợp vậy a?
Tất cả có trong file đính kèm bài #63.
Em cảm ơn!
Mình giúp bạn code tổng hợp thép luôn
[GPECODE=vb]
Sub TongHopThep()
Dim Dic, Arr(), Tmp(), ArrKQ()
Dim eRw As Long, k As Long, i As Long
Range("S8:X21").Delete xlUp
eRw = ActiveSheet.Range("I65500").End(3).Row
If eRw < 8 Then Exit Sub
Arr = Range("I8

" & eRw).Value
ReDim ArrKQ(1 To UBound(Arr) + 1, 1 To 6)
Set Dic = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(Arr)
If Arr(i, 1) <> "" And Not Dic.Exists(Arr(i, 1)) Then
Dic.Add Arr(i, 1), ""
k = k + 1
ArrKQ(k, 2) = "=SUMIF(R[" & 1 - k & "]C[-11]:R[" & eRw - k - 7 & "]C[-11], RC[-1],R[" & 1 - k & "]C[-6]:R[" & eRw - k - 7 & "]C[-6])"
ArrKQ(k, 3) = "=SUMIF(R[" & 1 - k & "]C[-12]:R[" & eRw - k - 7 & "]C[-12], RC[-2],R[" & 1 - k & "]C[-5]:R[" & eRw - k - 7 & "]C[-5])"
End If
Next
Tmp = Dic.keys
For i = 0 To Dic.Count - 1
ArrKQ(i + 1, 1) = Tmp(i)
Next
ArrKQ(k + 1, 3) = "=SUM(R[" & -k & "]C:R[-1]C)"
ArrKQ(k + 1, 1) = "T" & ChrW(7892) & "NG TR" & ChrW(7884) & "NG L" & ChrW(431) & ChrW(7906) & "NG"
ArrKQ(1, 4) = "=SUMIF(RC[-3]:R[" & k - 1 & "]C[-3],""<=10"",RC[-1]:R[" & k - 1 & "]C[-1])"
ArrKQ(1, 5) = "=R[" & k & "]C[-2]-RC[-1]-RC[1]"
ArrKQ(1, 6) = "=SUMIF(RC[-5]:R[" & k - 1 & "]C[-5],"">18"",RC[-3]:R[" & k - 1 & "]C[-3])"
Range("S8").Resize(k + 1, 6).Value = ArrKQ
Range("S8").Resize(k).Sort Key1:=Range("S8"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, Orientation:=xlTopToBottom
With Range("V8:V" & k + 8)
.Offset(, 1).Merge
.Offset(, 2).Merge
.Resize(, 3).Font.Bold = True
.Merge
End With
With Range("S" & k + 8).Resize(, 2)
.Resize(, 3).Font.Bold = True
.Merge
End With
With Range("S8:X" & k + 8).Borders
.LineStyle = xlContinuous
.Weight = xlThin
End With
End Sub[/GPECODE]
Còn công thức ở cột B mình đã giúp bạn công thức COUNTA() rồi mà
Bài #40