アプリ版:「スタンプのみでお礼する」機能のリリースについて

「指定した文字があった場合、その行を削除するマクロ」という過去の回答ですが
この場合「XYZ」という文字があればその行を削除するマクロでしたが、
この「XYZ」という文字が固定ではなく、「A-1セルに記載された文字と一致する
文字があれば削除」なら、どのようにどこを書き換えればよいでしょうか。
よろしくお願いします。
↓以下は過去の回答
指定した文字があった場合、その行を削除するマクロが欲しいです
Sheet1(Sheet1以外は対象外)のB列に
XYZ
という文字があった場合、その行をすべて削除する
というマクロはどのように作ればいいでしょうか?
お時間ある方アドバイスいただければ幸いです。

通報する
この質問への回答は締め切られました。
質問の本文を隠す
このQ&Aに関連する最新のQ&A
tatsu99様 さきほどの質問の件です

さらに表示
マカフィーの最上位セキュリティ対策ソフト(30日間無料体験版)

家族全員、何台でもインストールできます! 最上位製品のマカフィー リブセーフとまったく同じ機能をまずは★30日間無料★でお試しください。
マカフィー株式会社PR
A 回答 (3件)
最新から表示 回答順に表示 ベストアンサーのみ表示

No.3
回答者: mu2011 回答日時:2010/11/05 13:58
一例です。
半角、全角問わずxyzの文字列があれば行削除します。
シータタブ上で右クリック→コード表示→以下のコードを貼り付けてお試しください。


Sub 行削除()
For i = Cells(Rows.Count, "B").End(xlUp).Row To 1 Step -1
If InStr(1, Cells(i, "b"), "XYZ", vbTextCompare) > 0 Then
Rows(i).Delete
End If
Next
End Sub
good 2件通報する

No.2ベストアンサー
回答者: mt2008 回答日時:2010/11/05 13:48
手抜きですがこんな感じでどうでしょう。
削除する行が多いなら画面更新を停止した方が良いでしょう。

Sub Sample()
 Sheets("Sheet1").Select
 Do While (True)
  Columns("B:B").Select
  Set mySelect = Selection.Find(What:="XYZ")
  If mySelect Is Nothing Then Exit Do
  Rows(mySelect.Row).Select
  Selection.Delete Shift:=xlUp
 Loop
End Subが欲しいです
Sheet1(Sheet1以外は対象外)のB列に
XYZ
という文字があった場合、その行をすべて削除する
というマクロはどのように作ればいいでしょうか?
お時間ある方アドバイスいただければ幸いです。

通報する
この質問への回答は締め切られました。
質問の本文を隠す
このQ&Aに関連する最新のQ&A
tatsu99様 さきほどの質問の件です

さらに表示
マカフィーの最上位セキュリティ対策ソフト(30日間無料体験版)

家族全員、何台でもインストールできます! 最上位製品のマカフィー リブセーフとまったく同じ機能をまずは★30日間無料★でお試しください。
マカフィー株式会社PR
A 回答 (3件)
最新から表示 回答順に表示 ベストアンサーのみ表示

No.3
回答者: mu2011 回答日時:2010/11/05 13:58
一例です。
半角、全角問わずxyzの文字列があれば行削除します。
シータタブ上で右クリック→コード表示→以下のコードを貼り付けてお試しください。


Sub 行削除()
For i = Cells(Rows.Count, "B").End(xlUp).Row To 1 Step -1
If InStr(1, Cells(i, "b"), "XYZ", vbTextCompare) > 0 Then
Rows(i).Delete
End If
Next
End Sub
good 2件通報する

No.2ベストアンサー
回答者: mt2008 回答日時:2010/11/05 13:48
手抜きですがこんな感じでどうでしょう。
削除する行が多いなら画面更新を停止した方が良いでしょう。

Sub Sample()
 Sheets("Sheet1").Select
 Do While (True)
  Columns("B:B").Select
  Set mySelect = Selection.Find(What:="XYZ")
  If mySelect Is Nothing Then Exit Do
  Rows(mySelect.Row).Select
  Selection.Delete Shift:=xlUp
 Loop
End Sub

A 回答 (3件)

先に他の人が過去のq&aで本文コピペなどしていない事を学んでください。


range ("a1").textに置き換えるだけだよ。
    • good
    • 0

こんにちは!



色々一例です。

Sub Sample1()
Dim myFound As Range, myFirst As Range, myRng As Range
Set myFound = Range("B:B").Find(what:=Range("A1"), LookIn:=xlValues, lookat:=xlPart)
If Not myFound Is Nothing Then
Set myFirst = myFound
Set myRng = myFound
Do
Set myFound = Range("B:B").FindNext(after:=myFound)
If myFound.Address = myFirst.Address Then Exit Do
Set myRng = Union(myRng, myFound)
Loop
myRng.EntireRow.Delete
MsgBox "完了"
Else
MsgBox "該当データなし"
End If
End Sub

こんな感じでも大丈夫だと思います。m(_ _)m
    • good
    • 0

シンプルなのが良ければ、これでも大丈夫ですよ。



Sub sample()
On Error Resume Next
Do While Range("A1") <> "" And Err.Number = 0
Range("B:B").Find(what:=Range("A1"), LookIn:=xlValues, lookat:=xlPart).EntireRow.Delete
Loop
End Sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!