|
소스 코드
사용자 정의 함수
'--------------------------------------------------
Function sum_salary(sEmp As String) As Variant
'--------------------------------------------------
' now함수처럼 수시로 자동 재계산
Application.Volatile
'Dim sEmp As String: sEmp = "홍길동"
' 결과를 담을 1차원 배열
' 급여,공제,실급여,지급,미지급
Dim vTemplate As Variant: vTemplate = Array(0, 0, 0, 0, 0)
Dim rngX As Range
' 각 시트를 돌며
'----------------------------
For i = 1 To 12
'----------------------------
' 시트의 첫 열에서 찾기
Set rngX = Worksheets(i & "월").Range("A:A").Find(sEmp)
' 찾는 값이 있다면
'----------------------------
If Not rngX Is Nothing Then
'----------------------------
'급여
vTemplate(0) = vTemplate(0) + rngX.Offset(0, 13).Value
'공제
vTemplate(1) = vTemplate(1) + rngX.Offset(0, 23).Value
' 지급
vTemplate(3) = vTemplate(3) + rngX.Offset(0, 1).Value
'----------------------------
End If
'----------------------------
'----------------------------
Next i
'----------------------------
'실급여
vTemplate(2) = vTemplate(0) - vTemplate(1)
' 미지급
vTemplate(4) = vTemplate(2) - vTemplate(3)
' 배열을 반환
' 배열을 반환하기 때문에
' 배열의 크기만큼을 범위로 정한 후
' 수식을 입력하고 Ctrl+Shift+Enter를
' 입력해야 한다.
sum_salary = vTemplate
End Function |
|