매크로 위 아래 줄 비교 하기
회사와 직급, 이름을 기준으로 한 회사에 두명 이상이 등록되어 있으면 검토하는 매크로입니다.
수작업을 거쳐야 하는데 필터를 이름->직급->회사 순으로 내림차순 정렬하셔야 합니다.
이렇게 하면 회사 기준 -> 직급 -> 이름으로 정렬됩니다.
나머지는 실제 실행하면서 확인하시길 바랍니다.
'컬럼을 비교해서 삭제하는 부분입니다.
Sub chkColumnsNext()
Range(Cells(7, 14), Cells(100, 15)).Delete
Sheets(1).Select
Cells(2, 2).Select
ActiveCell.FormulaR1C1 = "=COUNTA(R[5]C[4]:R[10000]C[4])"
sameRowCnt = 1
colCnt = Cells(2, 2)
i = 7
Do While i < colCnt + 7
Cells(2, 4) = i
Cells(i, 2).Select
stdColName = Cells(i, 2)
stdColType = Cells(i, 3)
stdColLen = Cells(i, 4)
cmpColName = Cells(i + 1, 2)
cmpColType = Cells(i + 1, 3)
cmpColLen = Cells(i + 1, 4)
'이름이 같으면 타입을 비교함.
If stdColName = "신원제품" Then
aaa = bbb
End If
If stdColName = cmpColName Then
sameRowCnt = sameRowCnt + 1
If stdColType = cmpColType And stdColLen = cmpColLen Then
Cells(i + 1, 2).Select
Selection.EntireRow.Delete
ElseIf stdColType <> cmpColType And stdColLen = cmpColLen Then
Cells(i + 1, 14).Interior.Color = RGB(255, 100, 100)
Cells(i + 1, 14) = "직급 상이함"
i = i + 1
ElseIf stdColType = cmpColType And stdColLen <> cmpColLen Then
Cells(i + 1, 15).Interior.Color = RGB(255, 100, 100)
Cells(i + 1, 15) = "이름 상이함"
i = i + 1
ElseIf stdColType <> cmpColType And stdColLen <> cmpColLen Then
Cells(i + 1, 14).Interior.Color = RGB(255, 100, 100)
Cells(i + 1, 14) = "직급 상이함"
Cells(i + 1, 15).Interior.Color = RGB(255, 100, 100)
Cells(i + 1, 15) = "이름 상이함"
i = i + 1
End If
'이름이 다르면 그냥 넘어감
Else
If sameRowCnt = 1 Then
' Selection.EntireRow.Delete
Cells(i, 2).Interior.Color = RGB(100, 255, 100)
Cells(i, 14) = "적합"
' Cells(i + 1, 15) = "이름 상이함"
End If
i = i + 1
sameRowCnt = 1
End If
colCnt = Cells(2, 2)
Loop
End Sub
'정렬하는 부분입니다.
Sub setSort()
'
' setSort 매크로
'
'갯수를 센다
Range("B5").Select
ActiveCell.FormulaR1C1 = "=COUNTA(R[2]C:R[94]C)"
Cells(8, 1) = 1
Cells(9, 1) = 2
Range("A8:A9").Select
Selection.AutoFill Destination:=Range("A8:A81")
Cells(8, 1).Select
'정렬 하기
Range("A6:M6").Select
afCheck = Selection.AutoFilter
If afCheck = True Then
Else
ActiveSheet.AutoFilter.Sort.SortFields.Add Key:=Range _
("B6"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets(1).AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End If
End Sub
'MACRO > EXCEL-MACRO' 카테고리의 다른 글
텍스트 자르기 (0) | 2013.11.07 |
---|---|
autofilter 확인하기 (0) | 2013.10.31 |
함수 2. count 함수 사용 (0) | 2013.06.13 |
함수 사용 1, if함수와 isna, 그리고 vlookup 사용하기 (0) | 2013.06.12 |
작업 결과를 백업파일에 자동 저장하기 (0) | 2013.05.14 |