如何调用多列的代码

我需要在非连续的列上运行下面的代码,这里有代码发布在这里如何做一个不同的代码段。 将循环添加到Excel的VBA代码

我需要做同样的事情:

Sub CleanAll() Dim rng As Range For Each rng In Sheets("Sheet1").Range("D2:D100").Cells 'adjust sheetname and range accordingly rng.Value = TextOnly(rng.Value) Next End Sub 

我失败的努力

 Sub CleanAll(sColRange As String) Dim rng As Range For Each rng In Sheets("Sheet1").Range(sColRange).Cells 'adjust sheetname and range accordingly rng.Value = TextOnly(rng.Value) Next End Sub 

像这样使用:

 Call CleanAll("B2") Call CleanAll("H2") 

谢谢

编辑

以上提到了以下内容

 Function TextOnly(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 48 To 57, 65 To 90, 97 To 122: 'include 32 if you want to include space strResult = strResult & Mid(strSource, i, 1) End Select Next AlphaNumericOnly = strResult End Function 

为什么不简单的传递范围到子程序?

 Sub CleanAll(range as Range) Dim rng As Range For Each rng In range.Cells rng.Value = TextOnly(rng.Value) Next End Sub 

那么你可以打电话给它

 CleanAll(Sheets("Sheet1").Range("A1:A100"))