0

これは、EXCEL Visual Basic マクロ用です。

列 C に英数字のみが含まれるように、すべての列 B のデータを変更する必要があります。

私のコードは 1 つのセルに対してのみ機能します。アクティブなセルごとにこのコードをループしたい。誰でもこれについて私を助けることができますか?

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 "[A-Z,a-z,0-9, ]" Then
        c$ = c$ & b$
    End If
    Next i
    Range("D1").Value = c$
End Sub
4

1 に答える 1

2

各セルを通過する別の 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 "[A-Z,a-z,0-9, ]" Then
              c$ = c$ & b$
          End If
       Next i
    Cells(r,4).Value = c$
    Next r
End Sub
于 2013-10-22T16:48:12.277 に答える