2

私は少し読んでいて、ask SOポイントに達しました。名前を変更できるExcelのドロップダウンセレクターがあり、名前が変更されると「C3」の値が変更され(c3は別のシートの別のセルを参照します)、「C3」の値が変更されると変更されます「C3」の新しい値を反映するように、別のシート (現時点ではシート 6) のピボット テーブルで地域 ID のフィルターを更新する必要があります。

私にはイベントのように聞こえるので、調べてみると、VBA にイベントがあることがわかりました (イェイ!)。そこにあるコードは、マクロとして実行すると機能しますが、セル「C3」の値が変更されるたびに自動的に実行されるようにしたいと考えています。

これが私がこれまでに試したことです:

 Sub Worksheet_Change(ByVal Target As Range)
 If Not Application.Intersect(Target, Sheets("Current Status").Range("C3")) Is Nothing Then
Sheets("Sheet6").PivotTables("PivotTable5").PivotFields("territory_id"). _
    ClearAllFilters
Sheets("Sheet6").PivotTables("PivotTable5").PivotFields("territory_id").CurrentPage _
    = Sheets("Current Status").Range("C3").Value
 End If
 End Sub

更新: 上記のコードを新しいモジュールではなくシート セクション (シート 2) に配置すると、物理的にコードを入力して Enter キーを押すと実行できることがわかりました。今、手動で値を入力してEnterキーを押すことなく、それを行う方法があるかどうか疑問に思っています. ドロップダウンメニューを使用して新しい名前を選択できるようにしたいだけで、ドロップダウンセレクターが原因で c3 の値が変更されたときにピボットテーブルが更新されます。

SOさん、いつもありがとうございます。

4

1 に答える 1

3

問題は、C3 が実際には変更されていないことです。これは、更新されているのは単なる数式参照であるためです。「ドロップ ダウン セレクター」はフォーム上にありますか、それともデータ検証に基づいており、セル内にありますか?

セルに基づいている場合は、ターゲットをC3ではなくターゲットセルに設定します-> C3は単なる数式参照であり、ドロップダウンセルは実際に変化するセルです。

フォームに基づいているが、フォーム コントロールの on_change イベントのコードの場合。

于 2012-04-26T19:58:45.053 に答える