나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 dew (dewdrop)

추천:  2
파일:     VBA다중조건의 합계구하기_Ans.xlsm (29.5KB) 조회:  1656
제목:   [RE]VBA로 다중조건의 합계 구하는 질문입니다.
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007):2016

* 아래줄에 질문을 작성하세요 >>
첨부된 파일의 하도거래내역시트에서 결과시트의 조건에 만족하는 합계결과를 함수(SUMPRODUCT, SUMIFS)말고 vba로 처리하려면 어떻게 해야 하는지 질문드립니다.
==============[조상현님 글에 대한 답변입니다]==============

워크시트 이벤트 개체를 이용하였습니다.
첨부화일 참고하세요.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Me.[A3:C3]) Is Nothing Then Exit Sub
    
    Me.[C5] = getResult(Me.[A3], Me.[B3], Me.[C3])
End Sub

Private Function getResult(iYear As Integer, iMonth As Integer, sName As String)
    Dim rDB As Range, rRow As Range
    Dim vSum
    
    Set rDB = Worksheets("하도거래내역").Range("A1").CurrentRegion
    Set rDB = rDB.Offset(1).Resize(rDB.Rows.Count - 1)
    
    vSum = 0
    For Each rRow In rDB.Rows
        If rRow.Cells(1, 1) = iYear And rRow.Cells(1, 2) = iMonth And rRow.Cells(1, 4) = sName Then
            vSum = vSum + rRow.Cells(1, 5)
        End If
    Next
    
    getResult = vSum
End Function
 
[불량 게시물 신고]  
        
  

작성일 : 2019-11-15(16:04)
최종수정일 : 2019-11-15(16:04)
 


 ◎ 관련글

  제 목   작성자   날짜
VBA로 다중조건의 합계 구하는 질문입니다. 조상현 2019-11-14
[RE]VBA로 다중조건의 합계 구하는 질문입니다. dew 2019-11-15