从excel vba中列内的所有单元格中删除不需要的字符

从excel vba中列内的所有单元格中删除不需要的字符,excel,vba,Excel,Vba,我有一个vba代码,可以从A1单元格到G1单元格中删除除a-Z、a-Z或0-9以外的字符。如何将整个a:a迭代到G:G?我的代码只适用于一个单元格。我想做一列中的所有单元格。请帮忙 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

我有一个vba代码,可以从A1单元格到G1单元格中删除除a-Z、a-Z或0-9以外的字符。如何将整个a:a迭代到G:G?我的代码只适用于一个单元格。我想做一列中的所有单元格。请帮忙

   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

可以重复使用循环或循环的一个版本来循环单元格

也许有比这更好的方法,但它应该是有效的

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