Cần người giúp viết code VBA thay thế hàm Sumif
Xin chào mọi người.
Minh có một file đơn giản nhưng nó nặng hơn bình thường vì dùng hàm Sumif với đối tượng symbol . Ai đó biết về VBA có thể cho mình xin code để thay thế hàm sumif ở cột H trong sheet1 ( Thẻ_kho ) được không ạ ?
Mục đích là để tăng tốc độ tính toán, lưu và mở file khi làm việc.
Cảm ơn nhiều.
Xài đỡ cái này trong khi chờ cái khác tối ưu hơn
Option Explicit
Sub sumif()
Dim lr&, i&, rng, rngA, res(), dic As Object
Set dic = CreateObject("Scripting.Dictionary")
With Sheets("Sheet2") 'luu vung du lieu can sumif vao array
lr = .Cells(Rows.Count, "A").End(xlUp).Row
rng = .Range("G1:N" & lr).Value
End With
'duyet qua cot G, luu gia tri duy nhat vao dictionary (key) va cong don cot N (item)
For i = 1 To UBound(rng)
If Not dic.exists(rng(i, 1)) Then
dic.Add rng(i, 1), rng(i, 8)
Else
dic(rng(i, 1)) = dic(rng(i, 1)) + rng(i, 8)
End If
Next
'duyet qua cac gia tri tai cot A, tim kiem key tuong ung va lay item ra luu vao array "res", sau do dan tro lai vao shhet
With Sheets("Sheet1")
lr = .Cells(Rows.Count, "A").End(xlUp).Row
rngA = .Range("A1:A" & lr).Value
ReDim res(1 To UBound(rngA), 1 To 1)
For i = 1 To UBound(rngA)
If dic.exists(rngA(i, 1)) Then res(i, 1) = dic(rngA(i, 1))
Next
.Range("H1:H10000").ClearContents
.Range("H1").Resize(UBound(res), 1).Value = res
End With
End Sub
www.giaiphapexcel.com/diendan/threads/c%E1%BA%A7n-ng%C6%B0%E1%BB%9Di-gi%C3%BAp-vi%E1%BA%BFt-code-vba-thay-th%E1%BA%BF-h%C3%A0m-sumif.165653/
Khóa học Power PI – Ứng dung trong Nhân sự
TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...
Xem khóa học
Bình luận