Xin giúp đỡ về việc Sumif nhiều Sheet (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

chantinh2th

Thành viên mới
Tham gia
6/10/11
Bài viết
13
Được thích
3
Em tìm được trên mạng có một Function về hàm SumifAMS giúp Sumif trên nhiều Sheet khá hay. Trước hết xin chia sẽ lại các bạn nào cần dùng mà không search thấy trên google
Function SumIFAMS(lookup_value As Range, ParamArray cellranges() As Variant)

Dim i As Integer, rng1 As Variant, temp As Single, a As Boolean

Dim rng2 As Variant, value As Variant, j As Single

If (UBound(cellranges) + 1) Mod 2 <> 0 Then

MsgBox "The number of range arguments must be even. 2, 4 , 8 ... and so on"

Exit Function

End If

For i = LBound(cellranges) To UBound(cellranges) Step 2

If cellranges(i).Rows.Count <> cellranges(i + 1).Rows.Count Then

MsgBox "The number of rows in range arguments don´t match."

End If

If cellranges(i).Columns.Count <> 1 Then

MsgBox "Range arguments can only have size one column each."

Exit Function

End If

rng1 = cellranges(i).value

rng2 = cellranges(i + 1).value

For j = LBound(rng1) To UBound(rng1)

For Each value In lookup_value

If UCase(rng1(j, 1)) = UCase(value) Then a = True

Next value

If a = True Then temp = temp + rng2(j, 1)

a = False

Next j

Next i

SumIFAMS = temp

End Function

Công thức của hàm này : SumifAMS(đối tượng, range 1 sheet1, range 2 sheet1, range 1 sheet2, range 2 sheet2......)
Khó khăn em cần giúp đỡ:
Khi em viết sẵn hàm này cho 1 ô cell( vì em không biết wookbook đó có bao nhiêu sheet nên em cố gắng coppy cho công thức dài thật dài ra, để nó tổng quát,tức là dù có bao nhiêu sheet thì nó vẫn tính toán được. Kiểu thế này:
SumifAMS(đối tượng, range 1 sheet1, range 2 sheet1, range 1 sheet2, range 2 sheet2, range 1 sheet 3,range 2 sheet 3, range 1 sheet 4, range 2 sheet 4, range 1 sheet 5, range 2 sheet 5)
Tuy nhiên do hiện tại wookbook nó chưa có các sheet 3,4,5 đó nên nó không cho viết hàm như vậy.
Xin các bác có thể chế biến lại một tí cái Function trên cho nó phù hợp hơn không.
Hoặc giúp em một đoạn code, mà khi đó em nhập số lượng Sheet vào, ví dụ có 5 sheet thì ta nhập là 5, tên sheet có dạng sheetn. Bấm Button. Và công thức tại ô cell kia nó tự động nhãy ra thành:
SumifAMS(đối tượng, range 1 sheet1, range 2 sheet1, range 1 sheet2, range 2 sheet2, range 1 sheet 3,range 2 sheet 3, range 1 sheet 4, range 2 sheet 4, range 1 sheet 5, range 2 sheet 5)
Xin cảm ơn!
 
Web KT

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

Back
Top Bottom