2017-11-20 7 views
1

VBAを使用して記述されたカスタムサブルーチンを使用してフィルタリング(およびコピー)オプションを実行しています。サブルーチンは、パラメータ 'catName'としてフィルタリングするカテゴリを取得します。 これを基準に設定しようとしましたが、複数の組み合わせを使用しましたが、フィルタリングは行われていません。VBA。 Excelのフィルタ関数を介して渡される基準値

Dim crit As String 
crit = "=" & chr(34)&catName&chr(34) 

を試す1

copyRange.AutoFilter 9, Criteria1:=catName 

を試して失敗しましたすべての上記3

crit = "'" & catName& "'" 

を試してみてください。

コード内でカテゴリ名をハードコードすると、正常に動作します。

copyRange.AutoFilter 9, Criteria1:="B" 

機能に渡された値を基準として使用するにはどうすればよいですか?前もって感謝します。

答えて

0

条件式のように条件を渡す必要があります。次のように試してみてください:

copyRange.AutoFilter 9, Criteria1:="=" & catName 

ここでは方位記号が重要です!

+0

をなぜそれが重要なのですか?私は '='なしでかなりうまく管理することができます。 – Vityata

+1

これはうまくいった。そして、後ろにスペースがないことを確認するために、私はちょうどそれを作った: - 'Criteria1:=" = "&Trim(catName)' – user3831696

0

これを試してください:あなたはどこか正しく参照されていないか、正しくcatNameを定義していない

Dim catName As String 
catName = "B" 
copyRange.AutoFilter 9, Criteria1:=catName 

。例えば、 "3" により、カラム1のフィルタリング、それがどのように行われるか確認してください。

enter image description here

このコードを使用:

Public Sub TestMe() 

    Dim copyRange As Range 
    Dim strFilter As String 

    Set copyRange = Range("A1:P10") 
    strFilter = "3" 
    copyRange.AutoFilter 1, Criteria1:=strFilter 

End Sub 
関連する問題