[3주차] 엑셀 VBA 4주완성, 특별 스터디 3강 / 미션 제출 엑셀파일

VBA 4주 완성
작성자
송승민 All is well
작성일
2022-07-18 22:59
조회
34

1. 열심히 공부한 흔적이 담긴 사진을 남겨주세요!
(위쪽 카메라 버튼을 클릭해서 이미지를 삽입할 수 있습니다)

 

 

2. 이번 스터디에서 새롭게 알게되거나 유익했던 내용을 3가지로 요약해주세요!

  1. 범위 마지막 셀 찾는 메크로 사용방법
  2. slecttion change 와 chage의 차이점
  3. 범위 초기화 메크로 사용하는 방법

 

3. 이번 스터디를 진행하면서 특별히 좋았던 점이나 부족했던 점이 있다면 자유롭게 남겨주세요.

개인적으로 필요한부분은

  1. 스터디 그룹을 만들어주면 좋겠다(필수아닌, 선택으로)
  2. 그게 안된다면 보충학습 시간으로 배운내용에 대해서 직접 실시간 실습할 수 있으면 좋겠다. (유료도 참가의사 있음).
  3. 예복습 할 수 있으면 좋겠지만 강의시간만 들어도 완벽하게 할 수 있게 만들어 주면 좋겠다.

 

 

4. 열심히 학습한 결과파일이나 스크린샷, 코드가 있다면 자유롭게 올려주세요.

'-----------------------------------------
'미션1) 나만의 Sequence 매크로 만들기
'Column로 시작열을 지정하고, Count로 순번 개수를 지정하면
'시작열의 1행부터 순번을 출력하는 매크로를 작성합니다.
'예상풀이시간 : 3분
'-----------------------------------------
Sub SequenceNumber()
 
Dim Column As String   '시작열 @ 예) "A", "B", "C", ...
Dim Count As Long       '출력할 순번 개수 @ 예) 5, 10,15 ...
Dim i As Long                ' For문 변수
 
'힌트1) Column = "A"
'힌트2) Count = 10
Column = "A"
Count = 20
 
 
'힌트3) For i = 1 To Count
'힌트4) Range(Column & i).Value
For i = 1 To Count
  Range(Column & i).Value = i
Next
 
 
End Sub
 
 
'-----------------------------------------
'미션2) 나만의 Sequence 매크로를 동적으로 만들기
'InitCell로 시작셀을 지정하고, Count로 출력할 순번 개수를 지정하면
'InitCell을 기준으로 한칸씩 내려가며 순번을 출력하는 매크로를 작성합니다.
'예상풀이시간 : 5분
'-----------------------------------------
Sub DynamicSequence()
 
Dim InitCell As Range       '시작셀 @ 예) Range("A1")
Dim Count As Long          '출력할 순번 개수 @ 예) 5, 10 15 ..
Dim i As Long                   'For문 변수
 
'힌트1) Set InitCell = Range("A1")
'힌트2) Count = 10
Set InitCell = Range("c5")
Count = 10
 
 
 
 
'힌트3) For i = 1 To Count
'힌트4) InitCell.Offset(i-1).Value
For i = 1 To Count
 InitCell.Offset(i - 1).Value = i
 Next
 
 
End Sub
 
'-----------------------------------------
'미션3) 나만의 TextJoin 함수 만들기
'문자를 병합할 범위를 Rng로 입력하고, 구분자를 지정하면
'Rng의 각 셀을 돌아가며 구분자로 병합하는 함수를 작성합니다.
'예상풀이시간 : 7분
'-----------------------------------------
Function MyTextJoin(Rng As Range, _
                    Optional Delimiter As String = ",")
 
 
'@ 인수 설명
'Rng : 값을 병합할 범위입니다.
'Delimiter : [선택인수] 구분자입니다. 기본값은 쉼표(,)입니다.
 
Dim r As Range              'For Each문 변수
Dim Result As String      '결과로 출력할 문자열
 
'힌트1) For Each r In Rng
'힌트2) If r.Value <> "" Then
'힌트3) Result = Result & r.Value & Delimiter
For Each r In Rng
 If r.Value <> "" Then
     Result = Result & r.Value & Delimiter
     End If
Next
 
 
 
'힌트4) MyTextJoin = Left(○○○, Len(○○○) - 1)
MyTextJoin = Left(Result, Len(Result) - 1)
 
 
End Function
Sub clearrange()
Dim i As Long
i = Sheet1.Range("G1048576").End(xlUp).Row
If i > 1 Then
Sheet1.Range("G2:H" & i).ClearContents
End If
End Sub
 
Function dynamicrange(WS As Worksheet, Column As String, Initrow As Long) As Range
 
 
'Dim WS As Worksheet
'Dim Column As String
Dim i As Long
Dim address As String
'Dim Initrow As Long
 
 
'Set WS = Sheet1
'set ws = thisworkbook.workshees("품목검색")
'Column = "b"
i = WS.Range(Column & "1048576").End(xlUp).Row
If i < Initrow Then i = Initrow
'Initrow = 2
address = Column & Initrow & ":" & Column & i
 
 
'MsgBox address
Set dynamicrange = WS.Range(address)
 
 
 
 
End Function
Sub test()
 
MsgBox dynamicrange(Sheet1, "c", 2).address
 
 
 
End Sub
Sub FilterItems()
 
'GroupRng(구분)의 조건을 비교해서, 구분에 해당하는 제품과 가격을 표시
 
Dim GroupRng As Range           ' 필터링 할 구분 범위 (동적으로 설정!)
Dim r As Range                  ' GroupRng를 For Each로 하나씩 참조할 셀
Dim FilterVal As String         ' 비교할 조건
Dim i As Long                   ' r의 값이 조건과 같을 경우, 1씩 증가할 정수
 
Set GroupRng = dynamicrange(Sheet1, "A", 2)
FilterVal = Sheet1.Range("E2").Value
i = 2
For Each r In GroupRng
  If r.Value = FilterVal Then
       Sheet1.Range("G" & i).Value = r.Offset(0, 1).Value
       Sheet1.Range("H" & i).Value = r.Offset(0, 2).Value
       i = i + 1
End If
Next
 
End Sub
 
Sub UniqueList()
 
Dim Rng As Range                '고유값을 추출할 범위
Dim r As Range                  'Rng 를 For Each로 하나씩 참조할 셀
Dim Items As Collection         '고유값을 추가할 Collection
Dim item As Variant             'Collection을 For Each로 하나씩 참조할 값
Dim itemList As String          '고유값을 나열한 목록
 
 
End Sub
 
 
Private Sub Worksheet_Change(ByVal Target As Range)
 
Application.ScreenUpdating = False
Application.EnableEvents = False
 
If Not Intersect(Target, Range("E2")) Is Nothing Then
 
'실행할 명령문
     clearrange
     FilterItems
 
End If
 
Application.ScreenUpdating = True
Application.EnableEvents = True
 
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 
End Sub

 

 

 

 

전체 0

전체 1,208
번호 카테고리 제목 작성자 작성일 추천 조회
알림
[🏆 VBA 4주 완성 특별 스터디] 1기 - 우수 졸업생 및 후기, 축하합니다! (5)
오빠두엑셀 | 2022.07.31 | 추천 7 | 조회 842
오빠두엑셀 2022.07.31 7 842
40636 VBA 4주 완성
4주차 VBA강의 노트 엑셀파일첨부파일
이명환 | 2022.07.30 | 추천 0 | 조회 109
이명환 2022.07.30 - 109
40631 VBA 4주 완성
[4주차]VBA 4주 학습 첨부파일
이상민 | 2022.07.30 | 추천 0 | 조회 32
이상민 2022.07.30 - 32
40630 VBA 4주 완성
[3주차]VBA 4주 교육 첨부파일
이상민 | 2022.07.30 | 추천 0 | 조회 25
이상민 2022.07.30 - 25
40627 VBA 4주 완성
[2주차]VBA 4주 완성 학습 첨부파일
이상민 | 2022.07.30 | 추천 0 | 조회 20
이상민 2022.07.30 - 20
40622 VBA 4주 완성
[4주차] VBA 4주차 스터디 노트 엑셀파일첨부파일
사랑2 | 2022.07.30 | 추천 0 | 조회 26
사랑2 2022.07.30 - 26
40621 VBA 4주 완성
[4주차]엑셀 VBA 4주완성 엑셀파일첨부파일
최동국 | 2022.07.30 | 추천 0 | 조회 15
최동국 2022.07.30 - 15
40618 VBA 4주 완성
[4주차] 스터디 노트, 미션 첨부파일
달구름 | 2022.07.30 | 추천 0 | 조회 23
달구름 2022.07.30 - 23
40616 VBA 4주 완성
[4주차] VBA 4주 완성 특별스터디 4강 엑셀파일첨부파일
Gladiolus | 2022.07.30 | 추천 0 | 조회 27
Gladiolus 2022.07.30 - 27
40615 VBA 4주 완성
[3주차] VBA 4주 완성 특별스터디 3강 엑셀파일첨부파일
Gladiolus | 2022.07.30 | 추천 0 | 조회 13
Gladiolus 2022.07.30 - 13
40614 VBA 4주 완성
[2주차] VBA 4주 완성 특별스터디 2강 엑셀파일첨부파일
Gladiolus | 2022.07.30 | 추천 0 | 조회 19
Gladiolus 2022.07.30 - 19
40612 VBA 4주 완성
[1주차] VBA 4주 완성 특별스터디 1강 엑셀파일
Gladiolus | 2022.07.30 | 추천 0 | 조회 39
Gladiolus 2022.07.30 - 39
40609 VBA 4주 완성
[4주차] VBA 4주 완성 스터디노트 첨부파일
ㅊH 운ㅓ | 2022.07.30 | 추천 0 | 조회 20
ㅊH 운ㅓ 2022.07.30 - 20
40607 VBA 4주 완성
[4주차] 스터디 첨부파일
girls**** | 2022.07.30 | 추천 0 | 조회 19
girls**** 2022.07.30 - 19
40596 VBA 4주 완성
[3주차] 스터디 및 미션 첨부파일
DanP | 2022.07.29 | 추천 0 | 조회 17
DanP 2022.07.29 - 17
40595 VBA 4주 완성
[3주차] VBA 4주 완성 첨부파일
| 2022.07.29 | 추천 0 | 조회 15
2022.07.29 - 15
40592 VBA 4주 완성
[4주차] VBA 4주 완성 첨부파일
익명 | 2022.07.29 | 추천 0 | 조회 16
익명 2022.07.29 - 16
40591 VBA 4주 완성
[2주차] 스터디 및 미션 첨부파일
DanP | 2022.07.29 | 추천 0 | 조회 22
DanP 2022.07.29 - 22
40589 VBA 4주 완성
콜렉션및 배열등 엑셀파일첨부파일
브랑카 | 2022.07.29 | 추천 0 | 조회 19
브랑카 2022.07.29 - 19
40588 VBA 4주 완성
[3주차] VBA 4주 완성 노트 및 과제 엑셀파일첨부파일
토토니 | 2022.07.29 | 추천 0 | 조회 18
토토니 2022.07.29 - 18
40586 VBA 4주 완성
[4주차]VBA 4주 완성 엑셀파일첨부파일
ㅇㅇ나두 | 2022.07.29 | 추천 0 | 조회 19
ㅇㅇ나두 2022.07.29 - 19
글쓰기