inflearn logo
강의

講義

知識共有

データ自動化(with VBA)

피벗테이블_5(실무예제)에서 1004 런타임 오류가 발생하네요...

685

작성자 없음

投稿した質問数 0

1

안녕하세요. 데이터자동화(with VBA )를 공부중입니다.
강사님 덕분에 조금씩 알아가고 있습니다. 감사합니다.
 
하나씩 강의를 들으면서 하나씩 알아가는 기분이 좋은데 벽에 걸리고 말았습니다.
섹션9 부분(피벗테이블_5 실무예제)에서 강의 동영상이 (고급필터로 데이터 수집하는 부분) 깨져 있고요,
그래서 뒷 부분을 강의 화면에 나오는 코드를 어렵게 코딩해서 기동을 하면 에러가 발생합니댜.
 
피벗 생성 프로시저에서 "1004 런타임 오류가 발생합니다."
Set pt = pc.CreatePivotTable(sr.Range("a6"), "pv1") 이 부분에서 오류가 발생합니다.
물론 근본적인 문제는 pv_data 에서 데이터 추출이 안되서입니다.
 
강사님의 도움이 필요합니다.
 
제 메일로 회신해주실 경우는 shkwoak@daum.net 으로 답변 부탁드립니다.

피벗테이블 VBA excel

回答 1

0

exceldesign

안녕하세요, 곽송해님.
반갑습니다 :)

초창기 영상들이 녹화SW에 문제가 있어서
저렇게 잘리었더군요...ㅜ.ㅜ
보시는데 불편하실겁니다.
지금처럼 잘려서 도저히 혼자 코딩이 어려우면 댓글 남겨주세요.
코드 올려드리겠습니다.

Sub 고급필터로_데이터취합()

    Dim sr As Worksheet, sd As Worksheet

    Dim rng As Range    

    Set sr = Sheets("결과")

    Set sd = Sheets("pv_data")

    

    sr.Range("a6").CurrentRegion.Clear

    sd.Cells.Clear    

    If Application.CountIf(sr.Range("a3:c3"), "선택") = 3 Then

       MsgBox "행필드는 적어도 하나를 선택해야 합니다."

       sr.Activate

       sr.Range("a3").Select

    End If

    

    sd.Range("a1").Resize(1, 2) = Array("일자", "일자")

    sd.Range("a2").Resize(1, 2) = Array(">=" & sr.Range("b1"), "<=" & sr.Range("c1"))

    

    Set rng = Sheets("raw").Range("a1").CurrentRegion

    rng.AdvancedFilter xlFilterCopy, sd.Range("a1").CurrentRegion, sd.Range("a6")

End Sub

 

Sub 피벗생성()

    Dim pc As PivotCache

    Dim pt As PivotTable

    Dim sr As Worksheet

    Dim rng As Range

    Dim hang

    Dim f As PivotField

    

       

    Set sr = Sheets("결과")

    Set rng = Sheets("pv_data").Range("a6").CurrentRegion

    

    '혹시 기존 피벗이 있다면 삭제

    On Error Resume Next

        Set pt = sr.PivotTables(1)

        pt.TableRange2.Clear

    On Error GoTo 0    

    

    With sr

       If .Range("b3") = "선택" And .Range("c3") = "선택" Then

          hang = .Range("a3").Value

       ElseIf .Range("c3") = "선택" Then

          hang = Array(.Range("a3").Value, .Range("b3").Value)

       Else

          hang = Array(.Range("a3").Value, .Range("b3").Value, .Range("c3").Value)

       End If

    

    End With

    

    Set pc = ThisWorkbook.PivotCaches.Create(xlDatabase, rng)

    Set pt = pc.CreatePivotTable(sr.Range("a6"), "pv1")

    

    With pt

       On Error Resume Next

       .AddFields hang, "연령"

          If Err Then

             

             pt.TableRange2.Clear

             MsgBox "행필드 선택에 문제가 있습니다. 다시 선택하세요."

             Exit Sub

          End If      

       

       .AddDataField .PivotFields("통화건수"), , xlSum

       .RowAxisLayout xlTabularRow

       .RowGrand = False

       .ColumnGrand = False

       .MergeLabels = True

       

       For Each f In .PivotFields

          f.Subtotals(1) = False

       Next

       

       On Error GoTo 0

    End With   

       

End Sub

 

Sub main_pivot()

   Application.ScreenUpdating = False

   

   Call 고급필터로_데이터취합

   Call 피벗생성

   

   Application.ScreenUpdating = True

End Sub

4-7강 음성이 안나옵니다

0

24

2

자료 다운로드 오류

0

22

2

쿼리 오류 메세지

1

36

2

그룹화

1

45

2

화면

1

68

2

수료증

1

370

3

vba음영처리되어있음

1

262

1

2강 예제파일은 없는 것인가요?

1

288

1

(병합 해제) 질문입니다.

1

328

2

총 수강시간

1

334

1

강의 중 자료 없는 것들 다운 받을 수 있는 방법 없나요 ?

1

319

1

중복데이터처리 관련 예제파일없음

1

290

1

목록의 내용이 없는 dropdown 만드는 방법?

2

296

1

버블정렬 질문입니다.

1

394

1

셀 병합해제 질문있습니다

1

583

1

선수 지식이 궁금합니다

1

427

1

mac 2016 이상에서의 사용자 정의 폼 사용 불가

1

661

1

Row rows차이를 알고싶어요

1

1391

1

혹시

1

270

2

C값을

1

229

2

vba입문하려고합니다

1

272

1

수업에서 사용하신 test 함수 코드

2

400

2

마지막 명령어

2

294

2

환경설정 강의 관련

3

320

1