|
▼みっちー さん:
おはようございます。
>
>下記のコードでうまく動作させることが
>できました。ありがとうございます。
>
>またまた質問で大変恐縮なのですが、
>セル内の指定した文字以降のみを削除という場合には
>sushikiの中の指定する文字の位置を変えれば
>できるものなのでしょうか?
投稿したコードは、「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 & ")," & _
"substitute(" & myadd & _
",MID(" & myadd & ",FIND(""ED""," & myadd & "),LEN(" & myadd & ")),""""))"
Debug.Print sushiki '数式を確認して下さい
rng.Value = Evaluate(sushiki)
End Sub
数式内の「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行ぐらいなら、こんな方法もあると言う事で・・・。
|
|