从一列的Excel VBmacros值到下一列的仅字母数字值

这是一个EXCEL Visual Basicmacros。

我需要将所有列B数据更改为只有列C上的字母数字字符

我的代码只适用于一个单元格。 我想循环这个代码为每个活动单元格。 有人可以帮我吗?

Sub macroalphanum() Dim a$, b$, c$, i As Integer a$ = Range("C1").Value For i = 1 To Len(a$) b$ = Mid(a$, i, 1) If b$ Like "[AZ,az,0-9, ]" Then c$ = c$ & b$ End If Next i Range("D1").Value = c$ End Sub 

你只需要将你的For循环嵌套到另一个For循环中,通过每个单元格

快速示例:

 Sub macroalphanum() Dim a$, b$, c$, i As Integer, r as Integer For r=1 to 100 step 1 ' This will do it for all rows from 1 to 100. Change it to suit your needs a$ = Cells(r,3).Value c$ = "" ' (Re)Initialize c For i = 1 To Len(a$) b$ = Mid(a$, i, 1) If b$ Like "[AZ,az,0-9, ]" Then c$ = c$ & b$ End If Next i Cells(r,4).Value = c$ Next r End Sub