여러 Report Suite의 Days 혹은 Last Touch Channel 데이터를 추출하다 보면 각 Report Suite별로 추출될 행을 예측하여 한 행당 N행의 빈 행을 넣어줘야 하는 경우가 존재
Report Builder 파일은 Python을 통해 읽혀지면 Report Builder의 효능이 사라지기 때문에 Python을 이용한 방법은 사용이 불가
VBA추가
Menu > File > Option > 리본 사용자 지정 > 개발도구 체크 > 개발도구 안 Mecro 메뉴 생성 확인
VBA 코드 생성
Sub InsertRowsAtValueChange() # Sub > Procedure 생성
' Insert Set Rows on Each Different Variable Showed Up
Dim Rng As Range # Dim > 변수 선언
Dim WorkRng As Range
On Error Resume Next # 에러가 일어나면 무시하고 Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
For i = WorkRng.Rows.Count To 2 Step -1
If WorkRng.Cells(i, 1).Value <> WorkRng.Cells(i - 1, 1).Value Then
WorkRng.Cells(i, 1).EntireRow.Insert
End If
Next
Application.ScreenUpdating = True
End Sub
- Dim (Declare In Memory)
Dim (변수명) As (변수의 데이터 형식)- On Error > 에러가 발생했을 경우 처리 방식
- Set > 개체를 VBA 변수로 지정할 경우 사용
일반 데이터타입(숫자/문자/논리값)은 Set 없이 Dim을 이용하여 변수에 데이터를 할당할 수 있지만, 개체(Object) 데이터타입은 Set을 통하여 데이터를 할당해야 함
- 일반 데이터타입의 사용 목적 : 데이터의 입력 & 출력
- 개체 데이터타입의 사용 목적 : 데이터의 입력 & 출력을 위한 프로시져(명령문)으로 동작
1) 이미 RB이 존재하고, 수정해야 하는 경우
2) 새로운 RB을 만들 때