본문 바로가기

areas3

[기초방] VBA 100제 #60 [ 불일치 / 일치 같은 영역 색칠하기 ] 시리즈 마지막인거 같다. 같은 이름 사이에 [일치 / 불일치] 가 있을 때 일치이든 불일치이든 갯수가 이름의 갯수와 같은 영역에 노란색 음영을 칠하는 문제이다. 이 문제를 풀기 위해서는 1. 성명의 고유값들을 가져와야한다. 2. 고유값 이름들을 순환하면서 같은 이름들의 영역을 잡아야 한다. 3. 같은 이름들의 areas를 순환하면서 일치와 불일치의 카운트를 하여야한다. 4. 카운트 숫자와 이름 영역의 숫자와 비교하여 같으면 음영을 칠해야 한다. 5. 이를 마지막 열까지 순환하여야 한다. 1.성명의 고유값 구하기 Set rngX = [l5:l25] '= 이름영역 Vtemp = WorksheetFunction.Sort(WorksheetFunction.Unique(rngX)) 2. 고유값 이름순환 + 같은 이.. 2023. 9. 15.
[기초방] VBA 100제 #57 [ 영역 합계구하기 ] 빈셀의 크기는 유지한채 내용 있는 셀들만 합계를 구하는 구문이다. 이 문제는 Areas 를 알고 있는것과 그렇지 않은 것 사이의 차이가 많이 난다. 더보기 Option Explicit Sub 기초방57() Dim rngAll As Range: Set rngAll = Range("d5:d" & Cells(Rows.Count, "d").End(3).Row) Dim rngA As Range, rngX As Range, rngF As Range Dim i, j, Vtemp() ReDim Vtemp(rngAll.Cells.Count - 1) '= 임시배열 크기는 전체영역 크기로 잡음 For Each rngX In rngAll.SpecialCells(4).Areas '= 빈영역을 임시 배열에 담아라 Vtemp(i).. 2023. 7. 7.
[VBA] For Each & Areas 를 이용한 셀 조작하기 기초방에서 올린 문제 #1 초심으로 돌아가기 위한 프로젝트 #1 : 빈셀에 규칙을 이용하여 채우는 문제 왼쪽에 있는 문제는 엑셀 상에서 F5 > alt + s > alt + k를 누르고 바로 ' = 바로 윗셀 +1 '을 하면 된다. 하지만 오른쪽 문제는 좀 생각을 해야한다. 엑사남님은 Sub aaaaa() '''' 선택 범위 빈셀에 함수 입력하기 Range("B4:B23").SpecialCells(xlCellTypeBlanks) = "=B5+1" Range("D4:I23").SpecialCells(xlCellTypeBlanks) = "=COLUMN()-3+((ROW()-4)*6)" End Sub 이렇게 풀어버리셨다... 순간 알고리즘 문제를 내야하나 하고 욱했다..ㅋㅋㅋ 이번 기초방 문제에 기존에 참여가.. 2022. 12. 25.