これまではピボットテーブルでVBAを使用していませんでした。今度は2ピボットテーブルを更新(リフレッシュ)し、暦年のフィルタを最後の1週間に設定したいと思います。ここVBAを使用したフィルタを使用したピボットテーブルの更新
私の質問/問題は次のとおりである:
1)私は実際に.ClearAllFilters
行が必要ですか私はそれなしで、フィルタを設定することができますか?
2)対応するアイテム(週番号13など)が自分のテーブルに存在する場合、フィルタを設定する前に確認できますか?それ以外の場合は、まだ存在しないものをフィルタリングしようとします。
3)正しいコードを書いていますか、それとも短くて良い方法がありますか?例えば。 With
がWith
の範囲内であればわかりませんでした。
マイコード:
Dim varLastSunday As Date, varWeekNumber As Integer
varLastSunday = Date - Weekday(Date, vbUseSystemDayOfWeek)
varWeekNumber = CLng(Format(varLastSunday, "ww"))
Application.ScreenUpdating = False
With Worksheets(4)
.Range("StartColumns").EntireColumn.Hidden = False
.PivotTables("PivotTable9").PivotCache.Refresh
.PivotTables("PivotTable9").PivotFields("WEEK_NUMBER").ClearAllFilters
.PivotTables("PivotTable9").PivotFields("WEEK_NUMBER").CurrentPage = varWeekNumber
.PivotTables("PivotTable10").PivotCache.Refresh
.PivotTables("PivotTable10").PivotFields("week").ClearAllFilters
.PivotTables("PivotTable10").PivotFields("week").CurrentPage = varWeekNumber
End With
Application.ScreenUpdating = True
1.テストを行います。おそらく、DLookup()を1つのオプションとして使用します3. 'With'は入れ子にすることができますが、なぜこのコードで行うのか分かりません。 – June7