2016-07-07 2 views
0

동일한 시트 내에서 셀 값 (E1)을 기반으로 피벗 테이블 필터를 업데이트하려면이 코드를 사용하고 있습니다. 내가 뭘하고 싶습니다 요약 시트에 셀을 기반으로 필터를 업데이 트하는 것입니다. 현재 필드에 요약 된 셀과 동일한 필드를 설정하면 f2 키를 눌러 입력해야합니다. 그렇지 않으면 입력하지 않아도됩니다. 나는 조금 조정할 것이고 나의 코드는 그것을 위해 작동 할 것이라고 확신한다.VBA 피벗 테이블 하나의 셀 참조 다른 시트

팁이 있습니까?

Private Sub Worksheet_Change(ByVal Target As Range) 
Set Target = Range("E1") 
If Target Is Nothing Then Exit Sub 
On Error Resume Next 
Application.EnableEvents = False 
Sheets("Tech Pivot Table").PivotTables("PivotTable2").PivotCache.Refresh 
With Me.PivotTables("PivotTable2") 
    .PivotCache.Refresh 
    .PivotFields("Name").CurrentPage = Target.Value 
End With 
Application.EnableEvents = True 





    End Sub 
+0

, 중요한 코드를 디버그하는 것이 중요합니다. – RGA

답변

0

Target = "E1"인지 확인해야 할 때 대상 변수의 값을 앞쪽으로 변경한다고 생각합니다. 아래 코드를 사용해보고 작동하는지 알려주십시오. (가끔 실패하지만, 그에 따라 처리 할 알고 ** _ 매우 _ ** 특정 목적으로하지 않는 한) 가장 좋은 방법이 아닙니다은 그렇지 수 오류를 숨길 때에 오류가 Next`를 다시 시작`사용하여 참고

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target = Range("E1") Then 
     If Target Is Nothing Then Exit Sub 
     On Error Resume Next 
     Application.EnableEvents = False 
     Sheets("Tech Pivot Table").PivotTables("PivotTable2").PivotCache.Refresh 
     With Me.PivotTables("PivotTable2") 
      .PivotCache.Refresh 
      .PivotFields("Name").CurrentPage = Target.Value 
     End With 
     Application.EnableEvents = True 
    End If 
End Sub 
+0

안녕하세요 Phillip,이 코드는 이전 버전과 동일한 방식으로 작동합니다. 문제는 셀 E1을 다른 시트에 연결하려고한다는 것입니다. 이상적인 상황은 요약에서 이름을 업데이트하는 것이고 기술 피벗 테이블 시트 – Matty

+0

에서 피벗 테이블 필터를 자동으로 업데이트하지만 E1 = 요약! E1을 사용하면 피벗을 업데이트 할 수있는 유일한 방법은 F2 키를 누르는 것입니다. Enter를 누릅니다. 그래서 나는 그것을 피하고 싶습니다. – Matty