2016-09-12 10 views
0

私はHow to remove all non alphanumeric characters from a string except period and space in excel?を使用しますがオブジェクトに必要なエラー

オブジェクトは、あなたが、私は様々なのErrを試してみましたテキストの周りやif文を見ることができます

を必要ですが、これらは悲しげに持ってきておくましたそれを修正していない。

Sub CleanAll() 

Set wb = Workbooks("test.xlsm") 
Dim rng As Range 
' Dim i As Integer 
' i = 1 

For Each rng In wb.Sheets("Portal_Aligned").Range("A1:AX9999").Cells 'adjust sheetname and range accordingly 
    rng.Value = CleanCode(rng.Value) & "" 
    ' i = i + 1 
Next 

End Sub 

Function CleanCode(strSource As String) As String 

'On Error GoTo Err1 
'http://www.asciitable.com/ 

Dim i As Integer 
Dim strResult As String 

' If strSource <> "" Then 
For i = 1 To Len(strSource) 
    Select Case Asc(Mid(strSource, i, 1)) 

     Case 32 To 33, 35 To 131, 133 To 135, 145 To 146, 150 To 152, 155, 162 To 166, 183, 188 To 190, 247 
      strResult = strResult & Mid(strSource, i, 1) 
    End Select 
Next 

'AlphaNumericOnly = strResult 
'rng.Value = AlphaNumericOnly(rng.Value) 
' End If 
Err1: 

End Function 
+1

「CleanCode」は何も返さないように見えません。 –

+2

その関数の最後に 'CleanCode = strResult'を追加してみてください。 –

+0

@indofraiser下の私の答えでコードを試してください –

答えて

1

以下のコード(をテストした)あなたが許可されているすべてのCaseと、心に留めておく、動作しますが、あなたは("二重引用符のように)制限されているいくつかの文字があります。あなたが提供してきた参照リンクで

、POは(:;=>、そしてより多くのように)いくつかのより多くを制限します。

Sub CleanAll() 

Set wb = Workbooks("test.xlsm") 
Dim rng    As Range 

For Each rng In wb.Sheets("Portal_Aligned").Range("A1:AX9999") 'adjust Sheet Name and range accordingly 
    ' handle cells with emprty strings here 
    If rng.Value <> "" Then 
     rng.Value = CleanCode(rng.Value) & "" 
    End If 
Next 

End Sub 

Function CleanCode(strSource As String) As String 

Dim i    As Integer 
Dim strResult  As String 

For i = 1 To Len(strSource) 

    Select Case Asc(Mid(strSource, i, 1)) 

     Case 32 To 33, 35 To 131, 133 To 135, 145 To 146, 150 To 152, 155, 162 To 166, 183, 188 To 190, 247 
      strResult = strResult & Mid(strSource, i, 1) 

    End Select 
Next 

CleanCode = strResult 

End Function 
+0

完璧な感謝! – indofraiser

+0

@indofraiser your'e welcome:答えとしてマークしてくれてありがとう –

関連する問題