2014-03-27 48 views

回答

2
Sub RemoveSpecChars() 
    Dim Token As Variant 
    For Each Token In Array("-", "\", "#") 'etc. 
     Sheet1.UsedRange.Replace Token, "" 
    Next Token 
End Sub 
+0

如果性能是你可以把屏幕在次年初更新掀起了关注('Application.ScreenUpdating = FALSE'),并把它背在子结束之前('Application.ScreenUpdating = True')。 – mwolfe02

+0

通常情况下,从每个令牌的开始处开始,需要很长时间,更不用说可能的内存重新分配,并且它一次只能处理单个字符替换。 – sln

+0

显然它取决于UsedRange的大小和令牌的数量。我在中等尺寸的工作表上测试了它,其中UsedRange.Count = 135702.它在大约2秒内运行。当表现开始下降时,它可能会大幅下降。 – mwolfe02