STEP (2)
엑셀 VBA #36 / 행삽입_기본 [VBA]
반응형

엑셀 VBA #36 / 행삽입_기본 [VBA]


1. 목적 : VBA에서 행삽입 기능 숙지
2. Insert
- 구문 : 개체.Insert Shift:=xldown
- 의미 : 정해진 영역에서 기존 행은 아래로 이동시키고 새로운 행 삽입

3. 사용

Dim i As Long, lR As Long

lR = Cells(Rows.Count, "A").End(xlUp).Row   ' "A"열의 데이타가 있는 마지막 셀의 행번호

For i = 2 To lR
    If i <> lR Then  '마지막 행 아래는 빈 행이 있으므로, 마지막 행은 행삽입 불요 
        Cells(i, "A").EntireRow.Insert shift:=xlDown
    End If
Next

결과값---오류발생

오류발생원인 : 하나하나의 행 삽입되면서 기존의 행번호도 같이 변경되기때문!

해결위한 1차 코드
Dim i As Long, lR As Long

lR = Cells(Rows.Count, "A").End(xlUp).Row

For i = lR To 2 Step -1  '마지막 번호부터 시작하면서 행번호를 줄여간다
    If i <> lR Then
        Cells(i, "A").EntireRow.Insert shift:=xlDown
    End If
Next

결과값...또 오류 발생!!!

오류발생......

해결위한 2차 코드
Dim i As Long, lR As Long

lR = Cells(Rows.Count, "A").End(xlUp).Row

For i = lR To 2 Step -1 
    If i <> lR Then
        Cells(i, "A").Offset(1).Insert shift:=xlDown
        '작업해야 할 행보다 1칸 아래 행을 선정하여 행 삽입하면 됨
    End If
Next

결과값



4. 심화

Dim i As Long, lR As Long

lR = Cells(Rows.Count, "A").End(xlUp).Row

For i = lR To 2 Step -1
    If i <> lR Then
        Cells(i, "A").Offset(1).Resize(, 5).Insert shift:=xlDown
        'Resize(,5) : 5열까지만 행삽입토록
    End If
Next

vba#36.xlsm
0.02MB

 

 

 

https://www.youtube.com/watch?v=Lz1no-0Z7Xk&list=PLfxvqpVCYZ8e0qlyc_FU46neoWjO7yTWj&index=36




반응형
  Comments,     Trackbacks
엑셀 VBA #21 / For~Next_1 [VBA] 기본
반응형

VBA의 반복문

- For ~ Next

- For Each ~ Next

- Do ~ Loop

 

 

엑셀 VBA #21 / For~Next_1 [VBA] 기본

1. 구조
     For 변수 = 시작값 To 끝값 Step 증가값(감소값)
                       반복해서 실행할 구문
    Next

cf, 'Step 증가값(감소값)'이 없다면 'Step 1'과 같음

 

2.  활용

  Dim i As Long
  Dim cnt As Long

  cnt = Range("A1").CurrentRegion.Rows.Count
  '또는 cnt=range("A1").End(xldown).row

  For i = 2 To cnt
        If Cells(i, "A") >= 90 Then
            Cells(i, "B") = "A"
        ElseIf Cells(i, "A") >= 80 Then
            Cells(i, "B") = "B"
         ElseIf Cells(i, "A") >= 70 Then
            Cells(i, "B") = "C"
        Else
            Cells(i, "B") = "F"
        End If
  Next

 

결과값

https://www.youtube.com/watch?v=-5ofG6Un73A&list=PLfxvqpVCYZ8e0qlyc_FU46neoWjO7yTWj&index=21

반응형
  Comments,     Trackbacks
최근 작성 글
최근 작성 댓글
최근 작성 트랙백
프로필
공지사항
글 보관함
캘린더
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
TODAY TOTAL