님이 제공하신 코드에다가, 컬렉션을 이용하여 sum()수식이 있는 셀의 값들을 모았습니다.
Option Explicit
Sub 합계음영() Dim i As Integer Dim C As Range Dim SumCollection As New Collection
For Each C In ActiveSheet.UsedRange If C.HasFormula And InStr(C.Formula, "SUM") Then C.Interior.Color = vbYellow SumCollection.Add C.Value End If Next C
Range("a22").Select For i = 1 To SumCollection.Count ActiveCell.Value = SumCollection(i) Selection.Offset(1, 0).Select Next i
자세히 보니, 님의 데이터가 DataBase 형태가 아니군요..
* DB는 아래처럼 관리해야 효율성이 높습니다.
항목4를 "필드값 없음"으로 필터링 하면 Sum()함수가 들어있는 셀만 필터링 됩니다.
머.. 님께서 사정이 있으셔서 저렇게 구성을 할 수 밖에 없었다면..
VB로 원하는 결과를 뽑아올수 있습니다.
첨부파일을 참고하세요. (다운 받기 : abyul_20090710_findSumFormula.xls )
첨부파일에는 아래의 코드가 작성돼 있습니다.
님이 제공하신 코드에다가, 컬렉션을 이용하여 sum()수식이 있는 셀의 값들을 모았습니다.
Option Explicit
Sub 합계음영()
Dim i As Integer
Dim C As Range
Dim SumCollection As New Collection
For Each C In ActiveSheet.UsedRange
If C.HasFormula And InStr(C.Formula, "SUM") Then
C.Interior.Color = vbYellow
SumCollection.Add C.Value
End If
Next C
Range("a22").Select
For i = 1 To SumCollection.Count
ActiveCell.Value = SumCollection(i)
Selection.Offset(1, 0).Select
Next i
End Sub