2017-05-17 3 views
1

A1セルからG1セルまでA-Z、a-zまたは0-9以外の文字を削除するvbaコードがあります。 A:AをG:Gに反復するにはどうすればよいですか?私が持っているコードは、1つのセルだけで動作します。私は列内のすべてのセルを実行したい。親切にお手伝いください。excel vbaの列内のすべてのセルから不要な文字を削除します

Sub test()  
     Dim a$, b$, c$, k As Integer 

     a$ = Range("A1").Value 
     For i = 1 To Len(a$) 
      b$ = Mid(a$, i, 1) 
      If b$ Like "[A-Z,a-z,0-9]" Then 
       c$ = c$ & b$ 
     End If 
     Next i 
     Range("G1").Value = c$  
    End Sub 

答えて

1

ループまたはループのバージョンを再利用して、セルをループすることができます。

はこれより良い方法があるかもしれませんが、それは動作するはず

Sub Test() 
Dim a$, b$, c$, k As Integer, LastR#, x As Long 

LastR = Range("A" & Rows.Count).End(xlUp).Row 
For x = 1 To LastR 
    a = Range("A" & x).Value 
    c = "" 
    For I = 1 To Len(a$) 
     b = Mid(a$, I, 1) 
     If b$ Like "[A-Z,a-z,0-9]" Then 
      c = c & b 
     End If 
    Next I 
    Range("G" & x).Value = c 
Next x 
End Sub 
関連する問題