본문 바로가기

정렬하기2

[기초방] VBA 100제 #34 [ 상위5그룹 합계 ] 더보기 Sub 기초방34() Dim rngall As Range: Set rngall = [c4].CurrentRegion Dim rngX As Range Dim i&, j&, hSum&, Cnt&: Cnt = rngall.Cells.Count Dim vtemp Sheets("문제").[c4].CurrentRegion.Copy [c4] '= 문제복사 For i = 1 To Cnt - 1 '= 버블정렬 / 기초방 34-1 문제 해법 For j = i To Cnt If rngall(i) > rngall(j) Then vtemp = rngall(i) rngall(i) = rngall(j) rngall(j) = vtemp End If Next j Next i For i = 4 To 0 Step -1 '= 상위 .. 2023. 3. 5.
[VBA] 매출을 정렬해보자(Feat. ArrayList, RegExp) 정렬문제는 솔직히 좀 짜증난다.. 굳이 매크로로 안해도 되기에 이게 과제로 나오면 그냥 몸이 꼬이고 그냥 건드리기가 싫어진다. 그래서 문제를 좀 더 꼬아서 만들어 보았다. 문제는 괄호속 매출 기준으로 내림차순 정렬을 하고 순번으로 오름차순 정렬을 하는것이다. 순번과 매출이 모두 숫자가 아니라 텍스트화 되어 있기 때문에 이 상태로 정렬을 하게되면 1, 10, 11, 2, 21, 29,3 .... 뭐 이런식으로 정렬이 될 것이다. 따라서 이러한 문제를 풀기 위해서는 매출을 뽑아내고 이것을 다시 숫자화 시켜서 정렬을 하여야 한다. 그런 다음 이 숫자화 되어 있는 매출을 순환 하면서 원본 데이터에 이 텍스트화 된 데이터에 매출이 있는지 확인 하기 위해서 다시 텍스트화 시켜서 비교하면서 배열에 담아야 한다. 풀이.. 2022. 12. 13.