|
"괄호안에 질문에 대한 답변좀 부탁드립니다."
Dim myws1 As Worksheet, myws2 As Worksheet '시트이름을 넣을곳
Dim datarg1 As Long, datarg2 As Long, i As Long '데이타 갯수 파악하여넣을곳,
' i 는 for 문에서 첨자사용
Dim findchk As Range '입출고 품번 데이타 넣을곳
Set myws1 = Worksheets("입.출고") 'myws1 은 입.출고 라는 시트명 대입
Set myws2 = Worksheets("재고현황") 'myws2 은 재고현황 라는 시트명 대입
datarg1 = myws1.Range("b3000").End(xlUp).Row (옆의 문장 끝에서 .end(xlup).row 부분에 대한 설명)
'입출고 시트에서 b3000 까지의 데이타 건수 파악 대입
datarg2 = myws2.Range("d3000").End(xlUp).Row
'재고현황시트에서 d3000 까지의 데이타 건수 파악 대입
myws2.Range("g8:i3000") = "" ( 옆의 문장 끝에 ""가 왜 지움처리로 해석이 되는지 설명좀...)
'재고현황시트의 입고 8행부터 집계 3000 까지의 데이타를 지움 처리
For i = 11 To datarg1
' i 가 11 부터 1씩 증가하여 입출고의 데이타건수가 될때까지 계속 순환
' datarg1 이 20 이다 하면 i = 11 부터
' 아래 루틴 처리후 next i 가 나올때까지 처리하고 1증가해서 12가되고
'이런식으로 datarg1 의 값인 20일때까지 처리하고 끝냄
Set findchk = myws2.Range("d:d").Find(what:=myws1.Cells(i, 2))
findchk 라는 품번 변수명에 재고현황시트의 d열(품번)에서
'입출고시트의 i 행 b열 의 값을 찿아서 대입
'못찿으면 findchk 값이 nothing 됨
If findchk Is Nothing Then
' 찿는값이 없으면(findchk = nothing) 아래의 메세지 표시하고
' 작업 끝냄(exit sub)
MsgBox "품번착오//" & myws1.Cells(i, 2) & "재고현황에 맞는 품번이 없읍니다", 0 + 48, myws1.Cells(i, 2) & "없음"
Exit Sub
Else '찿는값이 있으면
Application.StatusBar = "자료정리중..." & (i - 11) / datarg1 * 100 & "% 진행중"
' 좌측 하단에 처리진행률 표시(i에서 10을 빼주고 실데이터는 i 가 11일때 한개임
If myws1.Cells(i, 2).Offset(0, 4) = "입고" Then
'입출고 시트의 i행 b열의 번지에서 우측으로 4번째의 값이 "입고"이면
myws2.Cells(findchk.Row, "g") = myws2.Cells(findchk.Row, "g") + _
myws1.Cells(i, 2).Offset(0, 1)
'재고현황시트에서 (찿은품번값(findchk)의 행번호(row), g열(입고)의 값에
'다 입출고 시트의 (i,2)에서 우측으로 한칸이동한 c열(수량)의 값을 더해서
'자신의 값에 넣어라(입고 = 입고원래의 값 + 입출고시트.수량)
Else
아니면(else) 출고란에 출고=출고원래값+입출고.수량
myws2.Cells(findchk.Row, "h") = myws2.Cells(findchk.Row, "h") + myws1.Cells(i, 2).Offset(0, 1)
End If
'재고 = 기초(f)+ 입고(g) - 출고(h)
myws2.Cells(findchk.Row, "i") = myws2.Cells(findchk.Row, "f") + _
myws2.Cells(findchk.Row, "g") - _
myws2.Cells(findchk.Row, "h")
' for 의 i 와 cells(findchk.row, "i") 의 i 는 전혀 다름니다.
' cell 의 i 는 열 번호 범위지정이고 ,for의 i 는 순환하기 위한 첨자입니다.
End If
Next i
Application.StatusBar = False
MsgBox datarg1 - 10 & "건 자료 수불 완료", , "자료수불 완료"
'실제 데이터 갯수 = i - 10
With Worksheets("재고현황") ' 재고현황으로 와서
.Activate
.Range("a8").Select
End With
End Sub
|
|