본문 바로가기

VBA280

[기초방] VBA 100제 #38 [ 재배치하기 ] 최근에 기초 문제가 난이도가 너무 높다고 해서 문제의 난이도를 낮춰보았다. 물론 난이도라는게 내가 한번이라도 해보거나 경험하였다면 그또한 쉬운 문제일것이다. 문제를 많이보고 많이 풀어보는 수밖에 없다... 기초방을 함께 하는 크루들의 실력이 상향 평준화 됨에 따라 본인의 자리가 작아짐을 느끼지만 그것또한 본인의 기쁨이리라... For Each rngA In rngall If rngA = rngall(1) Then rngA(1, 6).Resize(1, 5) = Array("영업자", "시간", "제품명", "배송지", "가격") Next rngA if rngA = rngAll(1) : 첫번째 행 / 즉 머릿말을 의미한다. For Each rngA In rngall If IsDate(rngA) Then '=.. 2023. 3. 6.
[기초방] VBA 100제 #37 [ Characters ] 37번 문제인데 38번으로 표기해서 크루인 [시훈아빠]님한테 혼이났다.. 37번으로 알고 가시길... 이문제는 Characters의 매소드중 Insert를 알고 모르고의 차이가 크다.. 이걸 Replace로 하게 되면 코드가 많이 지저분해질것이다. Characters 매소드에 대해선 Characters의 고찰편에서 자세하게 다뤄보도록 하겠다. With Reg .Pattern = "[^\s]+" .Global = True End With 해당 정규식 패턴은 [ 띄어쓰기가 아닌 모든 문자 ] 라는 의미이다. With rngA.Characters(idx, Len(Ma)) If .Font.Color = vbRed Then .Insert ("[" & Ma & "]") End If End With 이 구문은 핵심구.. 2023. 3. 6.
[기초방] VBA 100제 #36 [ 가로정렬하기 ] 더보기 Sub 기초방36() Dim rngAll As Range: Set rngAll = [c7:h7] Dim Vtemp: Vtemp = Split([c10], ", ") Dim bln As Boolean Dim C&, str$, cnt&: cnt = 65 Do If TypeName(Application.Match(Chr(cnt), IIf(bln = False, rngAll, Vtemp), 0)) "Error" Then If bln = True Then For C = 1 To Len([c10]) '= 기초방 36-1번 문제 해법 C = InStr(C, [c10], Chr(cnt)): If C = 0 Then Exit For str = IIf(str = "", Chr(cnt), str & "," & Chr.. 2023. 3. 5.
[기초방] VBA 100제 #35 [ 물품계산하기 ] 더보기 Option Explicit Sub 기초방35() Dim rngAll As Range: Set rngAll = [d7:d19] '= 표1 영역 Dim rnga As Range Dim rngT As Range: Set rngT = [f7:f16] '= 표2 영역 Dim rngB As Range Dim Vtemp, V(9) Dim i&, j&, num&, sumN&, cnt& Dim str$ Haja_format '= 초기화 rngT.Resize(rngT.Rows.Count, 2).Copy [i7] '= 결과 열에 표2 복사 For Each rnga In rngAll '= 표1 순환 Vtemp = Split(rnga, ",") '= 콤마로 분리 후 임시배열에 담음 For i = LBound(Vtemp.. 2023. 3. 5.