본문 바로가기

VBA/엑사남_기초방93

[기초방] 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 100제 #33 [ 칸트 차트만들기 ] 더보기 Sub 기초방33() Dim rngAll As Range: Set rngAll = Sheets("근무일정").[b3:b10] Dim rngA As Range Dim rngX As Range: Set rngX = Sheets(2).[a3] Dim rngCol As Range Dim Vtemp Dim start&, bln As Boolean Haja_Format bln '= 초기화 Sheets("근무자추출").Activate '= 근무자 추출시트 활성화 Application.Wait Now + TimeSerial(0, 0, 1) '= 1초 지연 For Each rngA In rngAll Vtemp = Split(rngA, " - ") rngX(1, 1) = rngA(1, 0) '= 고객명 rngX(1.. 2023. 3. 5.
[기초방] VBA 100제 #32 [ 이름조합하기 ] 과제문제 낼때 신규 이름 생성하기가 힘들어서 만든 과제이다. 이제 저 이름으로 조합하여 문제를 낼려고 한다..ㅋㅋㅋ 조합한 이름을 TXT 파일로 바탕화면에 추출하는 코드를 만들어보자 더보기 Option Explicit Sub 조합() Dim nameLs As Range: Set nameLs = [c4] '= 이름의 성 부문 Dim nameFs As Range: Set nameFs = [c5] '= 이름의 이름 부문 Dim VtempLs, VtempFs Dim fName$, str$ Dim Cnt&: Cnt = 1 Do VtempLs = Split(nameLs, " "): VtempFs = Split(nameFs, " ") '= 각 공백으로 분리하여 성 / 이름 배열에 담아라 fName = VtempLs(.. 2023. 2. 15.
[기초방] VBA 100제 #31 [ 소계구하기 ] 소계를 구하는 문제이다 보통이면 부분합을 통해서 구하는 것이 정석이리라 본다. 부분합도 사용하지 않고 배열도 사용하지 않아서 코드가 약간 길어진 거 같다.. 핵심구문은 소계를 입력한후 소계 이전셀까지의 그룹별 합계를 구하는 구문이다. Sub Haja_Cut(rngX As Range, cnt&) Dim i& rngX(1, 1) = "소계" For i = 2 To 5 rngX(1, i) = Application.Sum(rngX(-cnt + 2, i).Resize(cnt - 1, 1)) Next i rngX(1, 1).Resize(1, 5).Interior.ColorIndex = 6 rngX(1, 1).Resize(1, 5).Font.Bold = True cnt = 0 End Sub 각 그룹의 갯수를 Cnt변.. 2023. 2. 15.