VBA/엑사남_기초방93 [기초방] VBA 100제 #62 [ 홀수_짝수차 구별하기 ] 더보기 Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rngU As Range Dim rngAll As Range: Set rngAll = [e7].CurrentRegion Set rngAll = rngAll.Offset(1, 1).Resize(rngAll.Rows.Count - 1, rngAll.Columns.Count - 1) '= 차수별 데이터 If Intersect(rngAll, Target) Is Nothing Then Exit Sub '= 차수별 데이터를 클릭하지 않으면 종료 rngAll.Interior.ColorIndex = xlNone '= 색상 초기화 rngAll.Font.Bold = Fal.. 2023. 9. 18. [기초방] VBA 100제 #61 [ 사진 정보 가져오기 ] 이 문제를 낸 의도는 거추장스런 For문 또는 Find문을 사용하는 것보단 함수식을 사용해서 빠르고 간편하게 사용할 수 있다는 생각에서 문제를 내었지만, 아직까진 속도에서 딕셔너리를 넘길 수 없었다. 이번 딕셔너리처럼 Value값이 배열로 담을 수 있다면 속도는 더 짧아질것이다. 본 문제를 쉽게 접근하게 되면 이렇게 피를 보게 된다. 더보기 Option Explicit Sub 기초방61() Dim rngAll As Range: Set rngAll = Range([a2], [a2].End(4)) Dim Vall, VA, vDict Dim T!, i&, sKey$ Dim Vtemp() Dim Dict As Object: Set Dict = CreateObject("Scripting.Dictionary") r.. 2023. 9. 15. [기초방] 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제 #59 [ 불일치 영역 색칠하기 ] 기초방 58번에서 언급했듯. 59번 코드가 정석이다. 이유는 58은 성명이 하나인 곳에서 에러를 발생할 것이며, 속도 또한 59번보다 느릴것이다. 영역을 순환하는 것보다. find로 바로 바로 찍어서 영역을 합치기 때문에 데이터 양이 많다면 분명 더 효과적일것이다.' haja_find 함수의 find구문은 일정부분 루틴이 있는 것이기 때문에 반드시 기억하길 바란다. 더보기 Option Explicit Sub 기초방59() Dim rngAll As Range: Set rngAll = [m5:s25] Dim rngA As Range, rngC As Range Dim strFind$ For Each rngC In rngAll.Columns For Each rngA In rngC.Cells If rngA = ".. 2023. 8. 1. 이전 1 ··· 7 8 9 10 11 12 13 ··· 24 다음