levanhoa1977
Thành viên chính thức


- Tham gia
- 10/10/11
- Bài viết
- 62
- Được thích
- 3
ACE giúp điền code sheet IN. Cột A trống thì ko điền gì hết. Có có MSP thì điền công thức.
Cảm ơn.
Cảm ơn.
Diền từ F6:AK nhưng nó kiểm tra cột A trống thì không điền gì hết và được tô mau vàng.Mà điền công thức cho ô nào, dòng nào và cột nào vậy bạn?
Cái này ko đúng ý đồ bạn ơi. Của bạn là lồng thêm hảm if nếu giá trị cột a trống thì ko điền ko thức. Mình muốn công thức những dòng tô vàng để trống để mình điền công thức tay vào. Khi đó nó sẽ ko mất giá trị. Những cũng cảm ơn bạn góp ý.Sửa lại dòng code trong file của bạn như vầy.
Mã:Sheet6.Range("F6:AK" & DongCuoi).FormulaR1C1 = _ "=IF(RC1<>"""",SUMPRODUCT(--('DATA'!R3C2:R" & Kds & "C2=RC1)*('DATA'!R3C4:R" & Kds & "C4=R3C)*('DATA'!R3C22:R" & Kds & "C22=R3C1),('DATA'!R3C12:R" & Kds & "C12)),"""")"
Cảm ơn bạn nhiều nhiều.Mã:Private Sub Worksheet_Activate() Application.ScreenUpdating = False Dim DongCuoi As Long, Kds As Long Dim Rng As Range Kds = Sheet5.[D65000].End(xlUp).Row DongCuoi = Sheet6.[A65000].End(xlUp).Row Range("A5", Range("A65000").End(3)).Resize(, 40).AutoFilter 1, "<>" Range("A5", Range("A65000").End(3)).Offset(, 5).Resize(, 32).SpecialCells(xlCellTypeVisible).Value = _ "=IF(RC1<>"""",SUMPRODUCT(--('DATA'!R3C2:R" & Kds & "C2=RC1)*('DATA'!R3C4:R" & Kds & "C4=R3C)*('DATA'!R3C22:R" & Kds & "C22=R3C1),('DATA'!R3C12:R" & Kds & "C12)),"""")" Sheet6.Range("F6:AK" & DongCuoi).Value = Sheet6.Range("F6:AK" & DongCuoi).Value Sheet6.AutoFilterMode = False Application.ScreenUpdating = True End Sub
Mã:Private Sub Worksheet_Activate() Application.ScreenUpdating = False Dim DongCuoi As Long, Kds As Long Dim Rng As Range Kds = Sheet5.[D65000].End(xlUp).Row DongCuoi = Sheet6.[A65000].End(xlUp).Row Range("A5", Range("A65000").End(3)).Resize(, 40).AutoFilter 1, "<>" Range("A5", Range("A65000").End(3)).Offset(, 5).Resize(, 32).SpecialCells(xlCellTypeVisible).Value = _ "=IF(RC1<>"""",SUMPRODUCT(--('DATA'!R3C2:R" & Kds & "C2=RC1)*('DATA'!R3C4:R" & Kds & "C4=R3C)*('DATA'!R3C22:R" & Kds & "C22=R3C1),('DATA'!R3C12:R" & Kds & "C12)),"""")" Sheet6.Range("F6:AK" & DongCuoi).Value = Sheet6.Range("F6:AK" & DongCuoi).Value Sheet6.AutoFilterMode = False Application.ScreenUpdating = True End Sub
Flter gián giá trị nó bị lỗi thì phải. Cái này mình muốn gián giá trị nhưng ô điền công thức thôi. Nhưng ô màu vàng thì thì giữ nguyên. Ko làm gì hết.
Public Sub GPE_1()
Dim Dic As Object, sArr(), tArr(), dArr(), I As Long, J As Long, K As Long, R As Long, Tem As String, D As Date
Set Dic = CreateObject("scripting.Dictionary")
sArr = Sheets("DATA").Range("A3", Sheets("DATA").Range("A3").End(xlDown)).Resize(, 22).Value
For I = 1 To UBound(sArr, 1)
Tem = sArr(I, 2) & "#" & sArr(I, 4) & "#" & sArr(I, 22)
If Not Dic.Exists(Tem) Then
Dic.Add Tem, sArr(I, 12)
Else
Dic.Item(Tem) = Dic.Item(Tem) + sArr(I, 12)
End If
Next I
With Sheets("IN")
D = .Range("A3").Value
R = .Range("A65536").End(xlUp).Row
sArr = .Range("A6:A" & R).Value
tArr = .Range("F3:AK3").Value
dArr = .Range("F6:AK" & R).FormulaR1C1
For I = 1 To UBound(sArr, 1)
If sArr(I, 1) <> Empty Then
For J = 1 To UBound(tArr, 2)
Tem = sArr(I, 1) & "#" & tArr(1, J) & "#" & D
If Dic.Exists(Tem) Then dArr(I, J) = Dic.Item(Tem)
Next J
End If
Next I
.Range("F6:AK" & R) = dArr
End With
Set Dic = Nothing
End Sub
Nếu sheet in được điền tay vào khu vực màu đỏ. Hay dữ liệu cũ còn khi ta thây đổi dữ liệu sheet data. Thì mấy số lượng đó vẫn còn. Như vậy kết quả chưa đúng. Nếu ta xóa hết kết quả sheet IN chạy lại thì kết quả đúng.
For J = 1 To UBound(tArr, 2)
dArr(I, J) = Empty '<---------Thêm dòng này'
Tem = sArr(I, 1) & "#" & tArr(1, J) & "#" & D
If Dic.Exists(Tem) Then dArr(I, J) = Dic.Item(Tem)
Next J