matran25251325
Thành viên tiêu biểu

- Tham gia
- 13/1/11
- Bài viết
- 424
- Được thích
- 39
If Cls.Value = "" Or Cls.Value = "Ca" Or Cls.Value = "Kw" Then _
Cls.Offset(, -1).Resize(, 2).Value = ""
If Cls.Value = "" Or Cls.Value = "Ca" Or Cls.Value = "Kw" Or Cls.Value = "%" Then
Cls.Offset(, -1).Resize(, 2).Value = ""
End I
Set Rng = Sh.Range(Sh.[m10], Sh.[m9999].End(xlUp))
Hổng biết "Nhấp vào Form" là nhấp vào đâu. Tạm nhấp vào Command Button nhé.Nhờ các thầy giúp em đoạn code ở sheet PhanTichVatTu sau khi nhấp vào Form PTVT thì vật tư sẽ được phân tích từ sheet TLuongDT. Code chỉ lấy các vật tư chứ không lấy các Máy và bù nhiên liệu. Em cảm ơn nhiều.
1/ Thay sub này và nhập thêm Ca, %, Kw vào tiếp cột G sheet PhanTichVatTuDạ các modul đó là của sheet khác. Code bác BaTe có vẻ nhanh và đúng với ý em hơn, nhưng sau khi phân tích vật tư thì vẫn còn phần máy và bù nguyên liệu và vật liệu khác bác ơi. Nói chung là khi lọc sẽ không lấy các đơn vị %, Ca và Kw như bài trên. Và cho em hỏi thêm nếu muốn hiển thị công thức tính của cột D sheet PhanTichVatTu thì sửa ở đâu trong code
Public Sub BUXULU()
Dim Rng As Range, Cll As Range, Sarr(), Darr(), I As Long, K As Long, Dic As Object, Dic2 As Object, Tem As String, Tem2 As String
Set Dic = CreateObject("Scripting.Dictionary")
Set Dic2 = CreateObject("Scripting.Dictionary")
With Sheets("TLuong DT")
Sarr = .Range(.[M10], .[M65000].End(xlUp)).Resize(, 4).Value
End With
ReDim Darr(1 To UBound(Sarr, 1), 1 To 4)
With Sheets("PhanTichVatTu")
Set Rng = .Range(.[G2], .[G2].End(xlDown))
For Each Cll In Rng
Dic2.Add UCase(Cll), ""
Next
For I = 1 To UBound(Sarr, 1)
Tem = UCase(Sarr(I, 1)): Tem2 = UCase(Sarr(I, 2))
If Not Dic2.Exists(Tem) And Not Dic2.Exists(Tem2) Then
If Not Dic.Exists(Tem) Then
K = K + 1
Dic.Add Tem, K
Darr(K, 1) = K
Darr(K, 2) = Sarr(I, 1)
Darr(K, 3) = Sarr(I, 2)
Darr(K, 4) = Sarr(I, 4)
Else
Darr(Dic.Item(Tem), 4) = Darr(Dic.Item(Tem), 4) + Sarr(I, 4)
End If
End If
Next I
With .[A4]
.Resize(10000, 4).ClearContents
.Resize(10000, 4).Borders.LineStyle = xlNone
If K Then
.Resize(K, 4).Value = Darr
.Resize(K, 4).Borders.LineStyle = xlContinuous
End If
End With
End With
Set Dic = Nothing
Set Dic2 = Nothing
Set Rng = Nothing
End Sub
Bạn cứ thử trước, khi nào không vừa ý hãy hỏi chớ.anh BaTe cho em hỏi nếu không muốn lọc đơn vị nào đó thì mình chỉ cần thêm ở cột G sheet PhanTichVatTu hả anh