1
以下のVBAを持っています。これは、array()式の名前付きタブをすべてループします。私は、代わりに配列()に入力された値を持つのダイナミックレンジになりたい、それはこれらの値を持っているワークシートの範囲を参照し、それは私がよりバリアントvbaの名前付き範囲で配列を定義します。
Sub Filter_To_Send()
Dim WshtNames As Variant
Dim WshtNameCrnt As Variant
WshtNames = Array("RASC", "RSUV", "SBKP", "RGRN", "SBTK", "RWAS", "RABT", "RHAY", "RLEX", "RARM", "RBCK", "RBER", "RCCP", "RDAL", "RHEB", "RSST", "RMST", "RMIA", "REHV", "RNBY", "RNOF", "RUTC", "RSCS", "RSJO", "RSCQ", "RSHA", "RAWP", "SART", "SASK", "SALC", "SNHQ", "SOEX", "SPHL", "SSHP", "SMRN")
For Each WshtNameCrnt In WshtNames
With Worksheets(WshtNameCrnt)
.Range("A5").AutoFilter field:=16, Criteria1:="<>0"
End With
Next WshtNameCrnt
End Sub
感謝をダイナミック追加するときに!
- 本当にありがとうございました。私は実行時エラー '9' - 添え字が範囲外で、「ワークシートあり(c.Value)」行に達したときに取得します。 –
これは、アクティブなブックにその名前のワークシートがないことを示します。あなたのワークシートのリストにヘッダーがありますか?はいの場合は、 '.Range(" A1 ")'を.Range( "A2") ' –
に変更します。私は、既存のタブにタブのリストを追加し、それをA1からリストの開始位置に移動しようとしました。しかし、専用のタブを持つ方が簡単だと思います。本当にありがとう!! –