0
私はこのVBA
コードを持っています。私は失敗した行を見たとき、それはvba "アプリケーション定義またはオブジェクト定義のエラー"と "コンテキストがコンテキストで定義されていません"
アプリケーション定義またはオブジェクト定義のエラー
今
を返し、それは基本的文脈
にを定義していない
表現と言いますこのマクロは、ピボットテーブルフィルタを1つずつではなく複数のグループで選択できるようにするものです。以下はコードですが、どんな助力も強く評価されます。
Sub AdvancedFilter1() Dim ws Set ws = Workbooks("Bayer IB.xlsm").Worksheets("Pivots") ws.Activate Dim pv3 Dim pv4 Set pv3 = ws.PivotTables("PivotTable3").PivotFields("Shipped Date FY") Set pv4 = ws.PivotTables("PivotTable4").PivotFields("Shipped Date FY") Workbooks("Bayer IB.xlsm").Worksheets("Pivots").Activate If ws.Range("B1").Activate Then If ActiveCell.Value = "10" Then With pv3 .PivotItems("2007").Visible = True .PivotItems("2008").Visible = True .PivotItems("2009").Visible = True .PivotItems("2010").Visible = True .PivotItems("2011").Visible = True .PivotItems("2012").Visible = True .PivotItems("2013").Visible = True .PivotItems("2014").Visible = True .PivotItems("2015").Visible = True .PivotItems("2016").Visible = True End With ElseIf ActiveCell.Value = "2" Then With pv3 .PivotItems("2007").Visible = False .PivotItems("2008").Visible = False .PivotItems("2009").Visible = False .PivotItems("2010").Visible = False .PivotItems("2011").Visible = False .PivotItems("2012").Visible = False .PivotItems("2013").Visible = False .PivotItems("2014").Visible = False .PivotItems("2015").Visible = True .PivotItems("2016").Visible = True End With End If End If End Sub Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Address Case "$B$1" If Target = "10" Then Call AdvancedFilter1 ElseIf Target = "2" Then Call AdvancedFilter1 ElseIf Target = "3" Then Call AdvancedFilter1 ElseIf Target = "5" Then Call AdvancedFilter1 ElseIf Target = "7" Then Call AdvancedFilter1 End If 'TO PREVENT AUTOMATIC REDIRECT TO 'J3' Range("B1").Select End Select End Sub
'Range(" B1 ")。それは' case'か 'else else'の外にあるべきですか?ワークブック( "Bayer IB.xlsm")、ワークシート( "Pivots")、Activate'は必要ありません。エラーを投げている行を指定すると役立ちます。 – findwindow
範囲( "B1")。選択範囲外です。 Visible = Trueは、ワークシートで「10」または「2」を選択した場合にエラーをスローします。これは、ピボットアイテム(「2007」)のいずれかです。 – JessX
'PivotItems(" 2007 ")は存在しますか? 'Range(" B1 ")。select'は' case文 'の中にあります。 – findwindow