2017-09-14 13 views
0

私はExcelのデータテーブルで作業しており、列内の文字の削除を自動化する必要があります。数字のみを許可するVBA

Sub SacaLetras() 

    Dim RE As Object 
    Set RE = CreateObject("VBScript.RegExp") 
    RE.IgnoreCase = True 
    RE.Global = True 
    RE.Pattern = [a-z] 
    For Each RE In Worksheets("Candidatos").Range("P") 
    Cells.Replace(RE,"0") 
    Next RE 
End Sub 

はあなたのすべてをありがとう:

これは私が試したものです!

+0

これは間違っていますか? –

+0

構文エラーそれは何行目に –

+0

と表示されますか? –

答えて

2

これを使用

パターンは文字列にする必要があります。引用符で囲んでください。

列全体を反復処理しないでください。

regexオブジェクトではなくrangeオブジェクトに入れなければなりません。

新しい値を入れる場所をvbaに伝える必要があります。私はセル自体を上書きしています:

Sub SacaLetras() 

    Dim RE As Object 
    Dim cell As Range 
    Set RE = CreateObject("VBScript.RegExp") 
    RE.IgnoreCase = True 
    RE.Global = True 
    RE.Pattern = "[a-z]" 
    For Each cell In Intersect(Worksheets("Candidatos").Range("P:P"), Worksheets("Candidatos").UsedRange) 
     cell.Value = RE.Replace(cell.Value, "0") 
    Next cell 
End Sub 
+0

それは働いた!驚くばかり! TKS –

関連する問題