私はインターフェース ダッシュボードを作成しようとしています - 以下にスクリーンショットをいくつか示します。コンセプトは、メイン ページのドラッグダウン リストからフィルターされた値をリンクして、2 ページ目の 1 つの列にある同じフィルターされた値にリンクすることです。さまざまな変数で動作させることができないようです。
ここにいくつかのスクリーンショットと現在の VBA コードがあります。ここで何が間違っているのでしょうか? または、これに代わる方法はありますか?
コード:
Range("T8:V8").Select
Sheets(" Detail (Internal)").Select
ActiveSheet.Range("$A:$CT").AutoFilter Field:=16, Criteria1:=Range("T8").Value
皆様のご協力に感謝いたします。
答え1
選択しても何も得られません。選択と ActiveSheet の使用は安全ではありません。
変数を定義する必要があります
Dim sheet1 As Worksheet, sheet2 As Worksheet
Dim range1 As Range, range2 As Range
次に、シートと範囲への参照を取得して使用します。次のようにします。
Set sheet1 = ThisWorkbook.Sheets("Sheet1")
Set range1 = ThisWorkbook.Sheets("Sheet2").Range("T8")
sheet1.Range("$A:$CT").AutoFilter Field:=16, Criteria1:=range1.Value
または
Set range1 = ThisWorkbook.Sheets("Sheet1").Range("$A:$CT")
Set range2 = ThisWorkbook.Sheets("Sheet2").Range("T8")
range1.AutoFilter Field:=16, Criteria1:=range2.Value
または
Set sheet1 = ThisWorkbook.Sheets("Sheet1")
Set sheet2 = ThisWorkbook.Sheets("Sheet2")
sheet1.Range("$A:$CT").AutoFilter Field:=16, Criteria1:=sheet2.Range("T8").Value
等々...