Gizport
1 回答
0
Share (facebook)
189
view
全般

マクロVBA_オートフィル条件に該当がない場合の処理方法について。 ...

マクロVBA_オートフィル条件に該当がない場合の処理方法について。 初心者なので以下処理できず困っています><!
至急にてご回答お待ちしております。

複数条件に合致するデータをオートフィルでソートして抽出した該当行の「Z列(26列目)」に可視セル設定し
「*」を付与していく作業を繰り返しています。
その中で条件に該当ないと「xlUP」設定もしているので抽出行が空白になり1行目に「*」が付いてしまいます。。
条件に該当がない場合には何もしない(「*」付与はしないで次の条件or式へ。)という条件を付けるにはどの様な式をどこに挿入すれば良いのでしょうか??
分かり辛い説明となり申し訳ございません、、宜しくお願いします><!!!

---------------------------------------------
(省略)


Dim LastRow As Long
LastRow = Sheets("sheet1").Cells(65536, 25).End(xlUp).Row

Rows("1:1").Select
Selection.AutoFilter

'エラー回避
On Error Resume Next

Selection.AutoFilter Field:=10, Criteria1:="AA"
Selection.AutoFilter Field:=16, Criteria1:="BB"
Selection.AutoFilter Field:=17, Criteria1:="CC"
Selection.AutoFilter Field:=22, Criteria1:="DD"
Range(Cells(2, 26), Cells(LastRow, 26)).SpecialCells(xlCellTypeVisible).Select
Selection.FormulaR1C1 = "*"

ActiveSheet.AutoFilterMode = False

Rows("1:1").Select
Selection.AutoFilter

Selection.AutoFilter Field:=10, Criteria1:="EE"
Selection.AutoFilter Field:=21, Criteria1:="FF"
Selection.AutoFilter Field:=22, Criteria1:="GG"
Range(Cells(2, 26), Cells(LastRow, 26)).SpecialCells(xlCellTypeVisible).Select
Selection.FormulaR1C1 = "*"

ActiveSheet.AutoFilterMode = False

End Sub
---------------------------------------------
Yahoo!知恵袋 4884日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
fgqwx995さん

>.AutoFilter Field:=10
この列が両方に共通する列のようですから、

仮にField:=10が「J列」としたとき、、
If WorksheetFunction.Subtotal(2, Range("J:J")) - 1 Then
で、可視セルをカウントして、「>0」のとき…つまり上記のときに処理すれば良いのでは。。

Selection.AutoFilter Field:=10, Criteria1:="AA"
Selection.AutoFilter Field:=16, Criteria1:="BB"
Selection.AutoFilter Field:=17, Criteria1:="CC"
Selection.AutoFilter Field:=22, Criteria1:="DD"
If WorksheetFunction.Subtotal(2, Range("J:J")) - 1 Then
Range(Cells(2, 26), Cells(LastRow, 26)).SpecialCells(xlCellTypeVisible).Select
Selection.FormulaR1C1 = "*"
End If

後も同様です。。

【補足に対する追記】*********************

毎回オートフィルタで、複数列を指定して抽出する訳ですから、
指定するどこかの抽出列を、SUBTOTAL関数で「0」かどうか判断すれば良いと思います。
指定した抽出列のうち、どこか1列でも「0」であれば「可視セル」はないと判断できるのでは?
Yahoo!知恵袋 4884日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
50
Views
質問者が納得fgqwx995さん >.AutoFilter Field:=10 この列が両方に共通する列のようですから、 仮にField:=10が「J列」としたとき、、 If WorksheetFunction.Subtotal(2, Range("J:J")) - 1 Then で、可視セルをカウントして、「>0」のとき…つまり上記のときに処理すれば良いのでは。。 Selection.AutoFilter Field:=10, Criteria1:="AA" ...
4884日前view50
全般
51
Views
質問者が納得間にベリンガーあたりの安いミキサーかまして増音したら?
5064日前view51

取扱説明書・マニュアル

479view
http://www.fujitsu-general.com/.../ope-13_9319185064-02_zc_22-25-28-40-56-63-71.pdf
もっと見る

関連製品のQ&A