|
▼みっちー さん:
こんばんは。
>VBA初心者です。
>A列のセルの内の特定の文字の前のみを削除するような
>マクロを作成したいのですが良い方法があったら
>どなたかご教授お願いします。
>例「ABCC999EDHIIJ」の「ED」の前を全て削除する
>
>指定した文字を含む行ごと削除は下記の方法で
>うまく処理できたのですが、上記については
>わかりません。。よろしくお願いいたします。
「ED」(半角の大文字)という文字列が判断材料と言う事でよろしいですか?
'=============================================================
Sub test()
Dim rng As Range
Dim myadd As String
Set rng = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
myadd = rng.Address
sushiki = "=if(iserror(FIND(""ED""," & myadd & "))," & _
"if(" & myadd & "="""",""""," & myadd & ")," & _
"MID(" & myadd & ",FIND(""ED""," & myadd & "),LEN(" & myadd & ")))"
Debug.Print sushiki '数式を確認して下さい
rng.Value = Evaluate(sushiki)
End Sub
上記のコードは、アクティブシートにA列に対して、
「ED」以前の文字列を削除します。
オーソドックスな方法は、どなたかの投稿があると思いますが、
4000行ぐらいなら、こんな方法もあると言う事で・・・。
>
>
>---------------------------------------------------------
>
>Sub test()
>
>'特定の文字列を含む行を削除
>Dim c As Variant, Object, Range
>
> Workbooks.Open Filename:="book1.xls"
> fndkey1 = "AAA"
> fndkey2 = "BBB"
>
>
> For Each c In Sheets(1).Range("a1:a4000")
> '行削除
>
> If c.Value Like "*" & fndkey1 & "*" Then Rows(c.Row).Delete Shift:=xlUp
> If c.Value Like "*" & fndkey2 & "*" Then Rows(c.Row).Delete Shift:=xlUp
>
> Next
>
> ActiveWorkbook.Save
>
>End Sub
>
>---------------------------------------------------------
|
|