티스토리 뷰


"문서의 끝라인 수 찾기"



매크로 중

For 구문 사용 시 반복횟수를 지정하는것이 아닌

특정 Sheet의 열의 개수만큼만 반복해야할 때가 있습니다.





[02편 - For 구문 사용]

https://howitworks.tistory.com/33









2편에서 생성한 매크로를 불러오면,


--------------------------------------------------------------

Sub 시트추가하기()

Dim i as integer
= i 라는 정수 변수를 선언

   For i = 1 To 100 Step 1
   = i 를 1부터 100까지 1단위로 증가하여 반복

        Sheets.Add After:=Sheets(Sheets.Count)
        = 신규 Sheet를 추가하기
    
        ActiveSheet.Name = "시트" & i
        = 신규 Sheet의 이름을 "시트i"로 변경
           i는 1부터 100이므로 "시트1" ~ "시트100"으로 생성됨

   Next i
   = For 구문을 닫음

MsgBox "끝났습니다."

End Sub

--------------------------------------------------------------

위 매크로는

i라는 정수를 선언하고,

For 구문으로 i를 1부터 100까지 증가시키고

Sheet명을 1부터 100까지 이어붙여서

Sheet명을 변경합니다.




좀 더 조건을 추가하여

아래와 같은 목록이 있고
새로운 Sheet를 생성하여
Sheet명을 국가명으로 하고자 한다면,




For 구문을 사용하여
2번 행에서 19번 행까지
18회만 반복하면 됩니다.


또 Sheet의 명을 국가명으로 지정하면 됩니다.




--------------------------------------------------------------
Sub 시트추가하기()

Dim i, EndLine As Integer
= i, EndLine 이라는 정수 변수를 선언

Dim ShtNm, ActiveShtNm As String
= ShtNm 이라는 시트명 문자 변수를 선언

EndLine = ActiveSheet.Range("a1").CurrentRegion.Rows.Count
= 해당 문서의 끝라인 찾기

ActiveShtNm = ActiveSheet.Name
= 목록시트명을 지정

   For i = 2 To EndLine Step 1
   = i 를 2부터 EndLine까지 1단위로 증가하여 반복

      Worksheets(ActiveShtNm).Select
      = 목록시트로 이동

        ShtNm = Cells(i, 1).Value
        = 실행라인의 국가명 셀값을 ShtNm으로 지정

        Sheets.Add After:=Sheets(Sheets.Count)
        = 신규 Sheet를 추가하기
    
        ActiveSheet.Name = ShtNm
        = 신규 Sheet의 이름을 지정한 국가명으로 변경

   Next i
   = For 구문을 닫음

MsgBox "끝났습니다."

End Sub

--------------------------------------------------------------

위 매크로는

i라는 반복횟수 정수를 선언하고,

EndLine이라는 문서 맨 끝라인 정수를 선언합니다.

또, ShtNm이라는 시트명 문자 변수를 선언합니다.


Rows.Count로 맨 끝라인을 EndLine으로 지정하고,


For 구문으로 i를 2부터 EndLine 까지 반복시켜

국가목록을 순서대로 ShtNm에 지정하고

하나씩 신규 Sheet를 생성 후 Sheet명을 국가명으로 변경합니다.





실행 후 결과화면 입니다.










이상
특정 횟수만큼만 반복되는 For 구문에
사용할 수 있는 끝라인 찾기

포스팅을 마칩니다.~





댓글