无论如何要加速WorkSheetFunction.Clean VBA?

时间:2015-02-16 16:18:40

标签: excel-vba vba excel

我有以下Excel VB代码,它运行良好但它运行得相当缓慢,并想知道是否有任何方法来加快这个过程。 代码:

Sub cleanSheet()

Dim r As Range
Application.ScreenUpdating = False
For Each r In Range(Cells(1, 1), Cells(200, 12))
    r = WorksheetFunction.Clean(r)
Next r
Application.ScreenUpdating = True
End Sub

所以基本上我在A:L列中有数据需要清理。我希望能找到一些可能只需要整个范围的东西,例如A1:L200并且一次性清洁,而不是循环遍历每个单元格。

非常感谢任何帮助,

由于

1 个答案:

答案 0 :(得分:2)

我们会将范围转移到 VBA 数组

然后清理阵列然后转回范围:

Sub cleanup()
    Dim ary As Range
    Set ary = Range(Cells(1, 1), Cells(200, 12))
    bry = ary.Value
    For i = 1 To 200
        For j = 1 To 12
            bry(i, j) = Application.WorksheetFunction.Clean(bry(i, j))
        Next j
    Next i
    ary = bry
End Sub