후원자 이름의 중복을 체크해서 정기와 비정기 후원자로 나누고 각기 다른 시트에 담은 뒤 후원종류별로
분류해 통계를 내려고 첫단계만 작성해 봤는데..잘 안됩니다.
다음 코딩에서 잘못된 곳이 어딘지 좀 짚어 주십시요.
제일 먼저 잡히는 오류는 ...오류번호 483이 뜨네요. Cnt 있는줄..
2003 버전인데 클래스를 불러와야 되는건지...또 어떻게 불러오는지 알려 주십시요.
Sub 통계()
Dim i As Long
Dim Cnt As Long
Dim Cnt2 As Long
Dim Cnt3 As Long
Dim j As Long
Dim k As Long
Dim Fnd As Range
Dim FndRw As Long
Dim Fndstr As String
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Dim Sh3 As Worksheet
Application.ScreenUpdating = False
i = 1
Cnt2 = 2
Cnt3 = 2
Set Sh1 = ThisWorkbook.Worksheets(1)
Set Sh2 = ThisWorkbook.Worksheets(2)
Set Sh3 = ThisWorkbook.Worksheets(3)
Do
i = i + 1
if Application.CountA(Sh1.Range("D" & i & ":D4500")) = 0 Then Exit Do
Fndstr = Sh1.Cells(i, 4)
Cnt = Application.Countlf(Sh1.Columns(4), Fndstr) ---그래서 여기를 CounntA로 바꾸니
If Cnt > 5 Then
For j = 1 To Cnt
Set Fnd = Sh1.Columns(4).Find(Fndstr, LookAt:=xlWhole)
FndRw = Fnd.Row ---여기에서 다시 에러가 나는군요 424 런타임..개체가 필요합니다 라고
Sh2.Rows(Cnt2) = Sh1.Rows(FndRw).Value
Sh1.Rows(FndRw).Delete
Cnt2 = Cnt2 + 1
Next
Else
For k = 1 To Cnt
Set Fnd = Sh3.Columns(4).Find(Fndstr, LookAt:=xlWhole)
FndRw = Fnd.Row
Sh3.Rows(Cnt3) = Sh1.Rows(FndRw)
Sh1.Rows(FndRw).Delete
Cnt3 = Cnt3 + 1
Next
End If
Loop
Application.ScreenUpdating = True
End Sub
참 힘들고 모르겠네요.. 고수님들 좀 알려 주십시요
또하나 질문은 시트에서 a2,a3 셀이 합치기가 되어 있는데 2행이나 3행을 통해 b2,b3 셀의 레코드를
검색하려 한다면 어떻게 해야 하는지요.
그리고 합쳐진셀의 내용은 어떻게 가져오는지요.
첫댓글 if Application.CountA(Sh1.Range("D" & i ":D4500")) = 0 Then Exit Do에서 i 다음에 &가 빠진 것 같고, Application.Countlf(Sh1.Columns(4), Fndstr)은 Cnt = WorksheetFunction.CountIf(Sh1.Columns(4), Fndstr)으로 바꾸어 보세요. 도움이 되었으면 좋겠습니다.
감사합니다 . 알려 주신대로 바꾸어 봐도 cnt에서 438에러가 나는데..어떻게 해야 할지..
여러모로 정말 감사 드립니다..