Мой код «Worksheet_SelectionChange» (для управления полями сводной таблицы со значениями ячеек) требует, чтобы я снова выбрал каждую ячейку перед обновлением сводных таблиц (на отдельном листе).Есть ли способ обновить сводные таблицы, как только я введу значение в связанную ячейку?Мне нужно запустить другой код, чтобы выбрать все ячейки одну за другой, чтобы обновить сводные таблицы.Извиняюсь, если мой код не отформатирован должным образом.Я новичок в VBA и Stackoverflow.Я ценю любой совет.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
Dim rngIndustry1 As Range
Dim rngIndustry2 As Range
Dim rngIndustry3 As Range
Dim rngIndustry4 As Range
Set rngIndustry1 = Me.Range("Industry1")
Set rngIndustry2 = Me.Range("Industry2")
Set rngIndustry3 = Me.Range("Industry3")
Set rngIndustry4 = Me.Range("Industry4")
' Industry 1
If Not Application.Intersect(Target, rngIndustry1) Is Nothing Then
With Sheets("Pivots").PivotTables("pvtIndustry1").PivotFields("Industry")
If Len(rngIndustry1.Value) > 0 Then .CurrentPage = rngIndustry1.Value
End With '<this line changes
End If
' Industry 2
If Not Application.Intersect(Target, rngIndustry2) Is Nothing Then
With Sheets("Pivots").PivotTables("pvtIndustry2").PivotFields("Industry")
If Len(rngIndustry2.Value) > 0 Then .CurrentPage = rngIndustry2.Value
End With
End If
' Industry 3
If Not Application.Intersect(Target, rngIndustry3) Is Nothing Then
With Sheets("Pivots").PivotTables("pvtIndustry3").PivotFields("Industry")
If Len(rngIndustry3.Value) > 0 Then .CurrentPage = rngIndustry3.Value
End With
End If
' Industry 4
If Not Application.Intersect(Target, rngIndustry4) Is Nothing Then
With Sheets("Pivots").PivotTables("pvtIndustry4").PivotFields("Industry")
If Len(rngIndustry4.Value) > 0 Then .CurrentPage = rngIndustry4.Value
End With
End If
End Sub