エクセルVBAについて
エクセルのある行に「2」という数字があったときに
その行を削除しなさいという
コードをつくる時に
以下のコードがネットにのっていましたが、それだと「2」だけではなく「12」など"2"がついてるすべての行をけしてしまいます。
なんとか「2」だけをピンポイントにけすエクセルVBAのコードをつくってください。
よろしくお願いいたします。
~以下のコード~
Sub Sample()
Sheets("Sheet1").Select
Do While (True)
Columns("B:B").Select
Set mySelect = Selection.Find(What:="2")
If mySelect Is Nothing Then Exit Do
Rows(mySelect.Row).Select
Selection.Delete Shift:=xlUp
Loop
End Sub
No.1ベストアンサー
- 回答日時:
>それだと「2」だけではなく「12」など"2"がついてるすべての行をけしてしまいます。
消えないように思いますが、、、
一応、Selectionを除き書いてみました。。どうでしょう?
Sub Sample()
Dim mySelect As Range
Sheets("Sheet1").Activate
Do While (True)
Set mySelect = Columns("B").Find _
(What:=2, LookIn:=xlValues, LookAt:=xlWhole)
If mySelect Is Nothing Then Exit Do
Rows(mySelect.Row).Delete Shift:=xlUp
Loop
End Sub
No.2
- 回答日時:
#1です。
示されているコードを触って書きましたけど、やはり気になりまして
追記回答します。
何行あるか分かりませんが、纏めて削除された方が良いと思います。
Findを使うなら、FindNextで複数を探すやり方で
Sub Sample1()
Dim myRange As Range, myObj As Range
Dim myCell As Range, HitCell As Range
Set myRange = Columns("B")
Set myObj = myRange.Find("2", LookAt:=xlWhole)
If myObj Is Nothing Then Exit Sub
Set HitCell = myObj
Do
If myCell Is Nothing Then
Set myCell = HitCell
Else
Set myCell = Union(myCell, HitCell)
End If
Set HitCell = myRange.FindNext(HitCell)
Loop While HitCell.Row <> myObj.Row
myCell.EntireRow.Select ’選択する
' myCell.EntireRow.Delete Shift:=xlUp ’削除する
End Sub
サンプルは、選択のみです。
選択するを無効にして削除するを有効にしてください。
No.3
- 回答日時:
こんにちは!
すでに的確な回答は出ていますが、別案です。
オートフィルタの方法になります。
尚、1行目は項目行でデータは2行目以降にあるという前提になります。
Sub Sample1()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Range("B:B").AutoFilter field:=1, Criteria1:="2"
If Cells(Rows.Count, "B").End(xlUp).Row > 1 Then
Range(Cells(2, "B"), Cells(lastRow, "B")).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End If
ActiveSheet.AutoFilterMode = False
End Sub
こんな感じではどうでしょうか?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで実行時エラー'424' オブジェクトが必要ですと出る 2 2022/10/07 09:25
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Excel(エクセル) vba 複数の行を非表示の時コードのまとめ方 3 2022/11/17 15:01
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Excel(エクセル) マクロで行を追加、削除すると行位置がずれますが、解決方法はありませんか?。 5 2022/05/28 16:03
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Excel(エクセル) エクセルのVBAにショートカットキーの割り当て 3 2022/07/13 14:19
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
chatgptでつくってもらったコー...
-
1日に1人がこなせるプログラム...
-
access2003 クエリSQL文に...
-
Exel VBA 別ブックから該当デ...
-
COBOLの文法
-
特定行の背景色を変えたいのですが
-
ACCESSユニオンクエリでORDER B...
-
ExcelのVBAコードについて教え...
-
Visual BASIC イベント作成しよ...
-
◾️Excel VBA 統合について Cons...
-
MessageBoxで表示される文字列...
-
変数名「cur」について
-
1、Rstudioで回帰直線を求める...
-
pythonにてseleniumを使うも、...
-
コンパイルエラー 変数が定義...
-
UWSCでMOUSEORG関数が上手く処...
-
wechatアプリについての質問で...
-
VBでの「もぐらたたきゲーム作...
-
C# コードビハインドについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
access2003 クエリSQL文に...
-
1日に1人がこなせるプログラム...
-
Exel VBA 別ブックから該当デ...
-
pythonにてseleniumを使うも、...
-
ExcelのVBAコードについて教え...
-
ExcelのVBAコードについて教え...
-
chatgptでつくってもらったコー...
-
欠番の抽出について
-
JANコードとPOSコードは同じ?
-
JavaScriptの定数名が取り消し...
-
1、Rstudioで回帰直線を求める...
-
特定行の背景色を変えたいのですが
-
変数名「cur」について
-
PreviewKeyDownイベントが2回...
-
将来AIが進歩してくるにつれて...
-
ACCESSユニオンクエリでORDER B...
-
COBOLの文法
-
VBAでファイルオープン後にコー...
-
Nullの使い方が不正です。
おすすめ情報