Sử dụng hàm Sumproduct trong VBA

Liên hệ QC

lananh1312

nguyennguyen1312
Tham gia
13/8/20
Bài viết
8
Được thích
0
Chào mọi người, em đang làm một file xuất nhập tồn cho công ty, em sử dụng vba để viết sumproduct nhưng bị lỗi type mistake ở các range mà em đã set. Mọi người có biết nguyên nhân là gf không ạ. Em cảm ơn !
Mã:
Sub n_x_t()
Dim i As Integer, k As Integer, ngay_nhap As Range, ngay_xuat As Range, ma_nhap As Range
Dim ma_xuat As Range, Sl_nhap As Range, Sl_xuat As Range, nxt_start As Range, nxt_end As Range
k = Sheet7.Cells(Sheet7.Rows.Count, "b").End(xlUp).Row
Set ngay_nhap = Range(Sheet5.[b3], Sheet5.[b3].End(xlDown))
Set ngay_xuat = Range(Sheet6.[b4], Sheet6.[b4].End(xlDown))
Set ma_nhap = Range(Sheet5.[d3], Sheet5.[d3].End(xlDown))
Set ma_xuat = Range(Sheet6.[e4], Sheet6.[e4].End(xlDown))
Set Sl_nhap = Range(Sheet5.[j3], Sheet5.[j3].End(xlDown))
Set Sl_xuat = Range(Sheet6.[h4], Sheet6.[h4].End(xlDown))
Set nxt_start = Sheet7.[d2].Value
Set nxt_end = Sheet7.[h2].Value
For i = 5 To k
Sheet7.Range("c" & i).Value = Application.VLookup(Sheet7.Range("b" & i), Range(Sheet4.[b3], Sheet4.[h3].End(xlDown)), 2, False)
Sheet7.Range("d" & i).Value = Application.VLookup(Sheet7.Range("b" & i), Range(Sheet4.[b3], Sheet4.[h3].End(xlDown)), 4, False)
Sheet7.Range("e" & i).Value = Application.VLookup(Sheet7.Range("b" & i), Range(Sheet4.[b3], Sheet4.[i3].End(xlDown)), 8, False)
Sheet7.Range("f" & i).Value = WorksheetFunction.SumProduct((ngay_nhap < nxt_start), (ma_nhap = Range("b" & i)), Sl_nhap) - WorksheetFunction.SumProduct((ngay_xuat < nxt_end), (ma_xuat = Range("b" & i)), Sl_xuat) + Sheet7.Range("e" & i)
Next i
i = i + 1
End Sub
 
Chú ý SUMPRODUCT các mảng trong tham số của nó phải cùng kích cỡ
Bạn kiểm tra lại xem có cùng không, có thể lỗi này xảy ra (ghi macro công thức xem có chi khác biệt)

Nhưng đã áp dụng VBA thì nên thuần VBA sao lại nửa nạc nửa mỡ (nửa VBA nửa công thức)
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom