|
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.
1. 엑셀 버전(95,97,2000,2002):
2. 윈도우즈의 버전(win95,win98,winME,winNT,win2000,winXP):
3. CPU (486,PentiumI/II/III/IV...):
4. RAM (32,64,128,256,512MB,1G...):
* 아래줄에 질문을 작성하세요 >>
파일 다시첨부합니다...자료에 있는 데이타를 예시에 있는 각 코스트별로 비용을 끌어오려는 것입니다.
코스트센터가 50개나 되서 일일이 작업하기가 힘듭니다..
좋은 방법있으시면 알려주세여..^^
좋은 하루 되세요..^^
==============[영원한사랑님 글에 대한 답변입니다]==============
안녕하세요? 영원한사랑 님!
....^^;; 아래의 코드를 참고하세요
Option Explicit
Sub dhTest()
Dim c As Range
Dim rngDb As Range
Dim rngLast As Range
Dim lngR As Long
Const Es As String = "MagicSheet & 엑사모::http://OfficeDev.co.kr"
'Total행을 찾습니다
Set rngLast = ActiveSheet.UsedRange.Find(what:="TOTAL", lookat:=xlWhole)
If rngLast Is Nothing Then
MsgBox "TOTAL을 찾을 수 없습니다!", vbExclamation, Es
Else
lngR = rngLast.Row
End If
Range("F14:H" & lngR - 2).Value = Empty
'소계의 합을 구한다
Range("F" & lngR & ":G" & lngR).FormulaR1C1 = "=SUMIF(R14C4:R" & lngR - 2 & "C4,""소계"",R14C:R" & lngR & "C)"
Set rngDb = Range("F14:F" & lngR - 2)
lngR = 14
For Each c In rngDb
If Len(c.Offset(0, -1).Value) = 0 Then
Range("F" & lngR & ":H" & c.Offset(-1, 0).Row).FormulaR1C1 = "=VLOOKUP(RC3, 자료!R4C3:R2912C7,COLUMN()-3,0)"
c.Range("A1:C1").FormulaR1C1 = "=SUM(R" & lngR & c & ":R" & c.Offset(-1, 0).Row & "C)"
lngR = c.Row + 1
Else
End If
Next c
End Sub
그럼...행운이 있으시길...! |
|