2011-09-14 2 views
3

2011 년 10 월 14 일 최종 업데이트 - 이제 자세한 정보를 알고 있으므로 여기에 모든 내용을 요약하고 이전 설명/질문을 모두 삭제합니다.Excel 2007 VBA - 피벗 테이블 필드 목록 ??? 오류가 발생합니다

문제는 특정 프로그램을 실행 한 후에 이상한 오류가 발생합니다. "Split"을 클릭했을 때와 비슷하지만 정확하지는 않습니다. 차이점은 단색 회색 막대가 나타나지 않는다는 것입니다. 그것은 이상한 일입니다. 최근에 필자는 아마도 피벗 테이블의 필드 목록이 원인 일 수 있다고 생각하기 시작했습니다.

문제는

코드 1

Dim pvtCache As PivotCache 
For Each pvtCache In ThisWorkbook.PivotCaches 
    pvtCache.Refresh 
Next pvtCache 

코드 2

ThisWorkbook.RefreshAll 

코드 3

Dim ws As Worksheet 
Dim pt As PivotTable 
For Each ws In ThisWorkbook.Worksheets 
    For Each pt In ws.PivotTables 
     pt.RefreshTable 
    Next pt 
Next ws 

은 불가능 코드의 다음 세 가지의 발생 이, 어디 o 할수 있답니다 차이가 나는 코드 3

코드 그래서 4

Dim ws As Worksheet 
Dim pt As PivotTable 
For Each ws In ThisWorkbook.Worksheets 
    ws.Activate 
    For Each pt In ws.PivotTables 
     pt.RefreshTable 
    Next pt 
Next ws 

에 ws.Activate을 추가, 내 질문은, 어떤 일이 설명 할 수 있습니까? 어느 누구도이 오류없이 작동하도록 코드 1 (큰 데이터 소스의 2 피벗 캐시가있는 스프레드 시트에서 훨씬 빠르지 만 피벗 테이블 46 개)를 수정할 수 있습니까?

도움 주셔서 감사합니다.

+0

우리가 코드를 보지 않고 추측 할 수 있으며, 어쨌든, 음 ... 그래서 그것을 게시 할 수 없습니다, 당신은 여전히 ​​코드에서 일부 중단 점을 설정할 수 있습니다 (그리고'screenupdating'을 false로 설정하여 주석을 달아주십시오) 코드가 여러 라인에있는 중단 점을 설정하는 동안 split이 어디에 나타나는지 봅니다. 그러면 아마도 "잘못된"라인에 집중하는 데 도움이 될 것입니다. – JMax

+0

코드를 게시하는 것을 꺼려하는 이유가 확실하지 않은 경우 : 귀하의 회사가 귀하의 비밀 버그를 복사 할까 우려됩니까? 우리 모두 여기에 "work"코드를 게시합니다 ... –

+0

피벗 테이블을 "수동으로 새로 고침"할 수 있습니까? 내 직감은 당신이 할 수 없다는 것입니다. – adamleerich

답변

0

여러 장의 피벗을 여러 개 사용하고 있으며 세 개의 코드 스 니펫이 모두 올바르게 작동합니다. 문제를 일으키는 다른 것이 있어야합니다. 코드가 아닙니다.

0

코드 스 니펫이 올바르게 실행됩니다.

코드를 실행 한 후 화면 디스플레이가 새로 고쳐지지 않을 수 있습니다. 이번 라운드 당신의 코드를 추가

봅니다 :

Application.ScreenUpdating = False 
    ''//Your code here 
DoEvents 
Application.ScreenUpdating = True