[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA フィルター後の可視セル、タイトル行以外を選択し、行削除』(ピノ)
いつも参考にさせて頂いております。
VBAにて、下記作業を行いたいのですが、構文記載方法がいまいちわかりません。
<やりたいこと>
指定コードにてフィルターがけをし、
フィルター後の可視セル、タイトル行(A行)以外を選択し、
行削除したいです。
本データは可変データです。
必ずしも2行目が可視セルになっているかわからない場合の、
構文記載方法がわかりません。
以下、構文では、 可視セルのみの削除は出来ましたが、
タイトル行も消えてしまいました。
可視セル、タイトル行以外を削除する方法を
ご教授いただけたら幸いです。
<構文>
With Workbooks("データ.txt").Worksheets(1) .Range("A1:AH1").Select
'オートフィルターがけ Selection.AutoFilter
'コード:231を選ぶ Dim LR As Long LR = Cells(Rows.Count,1).End(xlUp).Row '最終行取得
ActiveSheet.Range("$A$1:$AH$" & LR).AutoFilter Field:=32 Criteria1:= _ "231"
'★フィルター後の可視セルタイトル行以外を選択し、削除 .Range("A2:AH" & LR .Cells.SpecialCells(xlCellTypeVisible)).Delete
< 使用 Excel:Excel2016、使用 OS:Windows10 >
1行目が見出し行で、2行目以下が本体部分なら、上記で機能するはずですが、
そこがよくわかりません。まずは、確認されたほうがよいと思います。
(結合セルとかがあって、悪さをしているんでしょうか)
なお、本体部分だけを取り出すなら、こんな書き方もあります。 Set rng = ActiveSheet.AutoFilter.Range Set myBody = Intersect(rng, rng.Offset(1)) 参考にしてください。 (γ) 2020/04/15(水) 17:13
γ様からご教授いただいた構文を基に下記の通り作成したところ、
タイトル行以外を削除することができました。
有難うございます!
'タイトル行(1行目)以外の可視セルを削除 Set Rng = ActiveSheet.AutoFilter.Range Set mybody = Intersect(Rng Rng.Offset(1)) mybody.Cells.SpecialCells(xlCellTypeVisible).Delete
(ピノ) 2020/04/16(木) 10:40
ところで投稿にあたって手打ちをされていますよね。
今後は、VBE画面のコードをそのままコピーペイストされたほうがよいですね。
インプットミスで生ずる構文エラーを回答側で修正する必要がありますし、
インプットミスなのか、実際にそうなのかの判定ができないこともあります。
(γ) 2020/04/16(木) 11:03
投稿の時は、VBEコードをそのまま貼り付けると
一部が文字化けして、⁇⁇となってしまうので、
一度アクセルに貼り付けてから投稿していました。
でもそうすると、余計な空白が入ってしまったりしますね…
今後はワードに貼り付けるなど検討してみます。
ご指摘ありがとうございます。
(ピノ) 2020/04/16(木) 19:32
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.