![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
VBA初心者です。
オートフィルターで抽出した行を削除したくて、以下のように書いたのですが、最後の一文でエラーになってしまいます。
◆エラー内容◆
実行時エラー1004
重複する選択範囲に対してそのコマンドを使用することはできません。
◆書いたVBA◆
Range("A2").Select
Selection.AutoFilter Field:=1, Criteria1:="=1111", Operator:=xlAnd
'オートフィルターで「1111」を抽出
Dim r As Range
Set r = Range(Range("A3"), Range("A" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible)
r.ClearContents 'A列の可視セルの値をクリア
Range("A2").Select
Selection.AutoFilter 'オートフィルターの解除
r.SpecialCells(xlCellTypeBlanks).EntireRow.Delete 'A列が空白の行は削除→ ココがエラーになります
---------------------------------------------------------
元のファイル構成は2行目に項目名で、3行目からデータが入っています。
いろいろ調べたのですが、よくわからなかったので教えていただければ
幸いです。
宜しくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
抽出データがない時は処理しないようにしたほうが良いでしょう。
また、抽出結果範囲を r にセットし直して、ダイレクトに削除すれば良いです。
Sub try()
Dim r As Range
With ActiveSheet
Set r = .Range("A2", .Range("A" & .Rows.Count).End(xlUp))
r.AutoFilter Field:=1, Criteria1:="=1111"
If WorksheetFunction.Subtotal(3, r) > 1 Then
Set r = Intersect(r, r.Offset(1).SpecialCells(xlCellTypeVisible))
.AutoFilterMode = False
r.EntireRow.Delete
Else
MsgBox "no data"
End If
End With
Set r = Nothing
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【至急】Excel 同一人物の情報を一行にまとめる(複数行) 6 2022/05/24 17:58
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) Sheet2の日付をキーにオートフィルターで2023年1月のデータを抽出し、Sheet3へ書き出すた 2 2023/03/06 23:57
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) エクセルVBAコピー 2 2022/06/08 21:45
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) 前回質問の続きになりますが、下記マクロでシート1からシート2の抽出項目セルB3「りんご」とセルC2「 2 2022/12/02 17:37
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
マクロで"#N/A"のエラー行を削...
-
On ErrorでエラーNoが0
-
【VBA】ワークブックを開く時に...
-
お助けください!VBAのファイル...
-
VBA データ(特定値)のある最...
-
ExecuteNonQueryメソッドの戻り値
-
VBでSQL文のUPDATE構文を使った...
-
【Access】Excelインポート時に...
-
エクセルVBAで今まで使えていた...
-
エクセルでリンクされたイメー...
-
ACCESSで値を代入できないとは?
-
OpenOffice Basicで簡単な関数...
-
Excel vbaについての質問
-
ACCESS DAO で不要なテーブルの...
-
#N/Aの文字を削除するには
-
インポート時のエラー「データ...
-
フランスの生年月日(jj/mm/aaaa)
-
VBAでfunctionを利用しようとし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
実行時エラー 438 の解決策をお...
-
On ErrorでエラーNoが0
-
お助けください!VBAのファイル...
-
VBA データ(特定値)のある最...
-
インポート時のエラー「データ...
-
実行時エラー'-2147467259(8000...
-
ACCESSで値を代入できないとは?
-
VB.net 重複チェックがしたいです
-
ActiveCell.FormulaR1C1の変数
-
ApplicationとWorksheetFunctio...
-
「実行時エラー '3167' レコー...
-
【VB.NET】 パワポ操作を非表示で
-
フランスの生年月日(jj/mm/aaaa)
-
【マクロ】 IFERROR関数をマク...
おすすめ情報