Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("J2")) Is Nothing Then Exit Sub
'Set the Variables to be used
Dim pt As PivotTable
Dim Field As PivotField
Dim NewPolicy As Double
'Here you amend to suit your data
Set pt = Worksheets("Payment Data").PivotTables("PivotTable1")
Set Field = pt.PivotFields("POL_NUMBER")
NewPolicy = Worksheets("Payment Data").Range("J2").Value
'This updates and refreshes the PIVOT table
With pt
Field.ClearAllFilters
Field.CurrentPage = NewPolicy
pt.RefreshTable
End With
End Sub
これは私が初心者であるため、間違った構文についてお詫び申し上げます。上記のコードでは、ピボットテーブルを取得して、同じページのセルから値を受け取り、参照されたセルとやりとりする必要なしに、瞬時に更新しようとしています。私はウェブサイトからこのコードを入手しました。私はそれを調整しましたが、ピボットテーブルを更新することができません。上記の状態にこのコードを変更する前に、私のコードは次のように見えた:その古い状態でセルとフィルタからデータを受け取るピボットテーブルを作成する
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("J2")) Is Nothing Then Exit Sub
'Set the Variables to be used
Dim pt As PivotTable
Dim Field As PivotField
Dim NewPolicy As Double
'Here you amend to suit your data
Set pt = Worksheets("Payment Data").PivotTables("PivotTable1")
Set Field = pt.PivotFields("POL_NUMBER")
NewPolicy = Worksheets("Payment Data").Range("J2").Value
'This updates and refreshes the PIVOT table
With pt
Field.ClearAllFilters
Field.CurrentPage = NewPolicy
pt.RefreshTable
End With
End Sub
、コードが働いていたが、私はJ2をクリックして、シート上の他の場所をクリックする必要がありました(J2からその値を取得しますメインデータ入力シートである別のシートのセル)。 ピボットテーブルを更新するためにJ2をクリックし続ける必要はありません。 J2が別のシート(J2と接続されている他のセル)の別のセル値に基づいてJ2の値を変更するとすぐに更新したいと思います。事前に
おかげで、 LHS
このコードではどうなりますか? – Rory
一番上のコードは私が使用しているコードです。コードが行うことは、ワークシートのセルから値を受け取ることです(セル自体が別のワークシートの別のセルから値を受け取ります)。 セルの値の変化を検出してから、 – LHS
J2をどのように変更していますか – Rory