我正在尝试编写一些代码,以将工作簿中具有特定样式的所有单元格更改为另一种样式,然后删除旧样式。
我有下面的代码是单独工作的,但是当将它应用于每张纸上使用范围较大的大型工作簿时,可能会花费很长时间或崩溃。
Sub ChngStyle()
Dim sty1 As String: sty1 = "Total"
Dim sty2 As String: sty2 = "From"
Dim ws As Worksheet
Dim cell As Range
Application.ScreenUpdating = False
For Each ws In ActiveWorkbook.Worksheets
For Each cell In ws.UsedRange
If cell.style = sty1 Then
Application.Goto cell
On Error Resume Next
cell.style = sty2
End If
Next cell
Next ws
Application.ScreenUpdating = True
MsgBox "Done"
ActiveWorkbook.Styles(sty1).Delete
End Sub
是否可以对特定样式使用FIND / FINDFORMAT /其他方式仅以该样式为目标单元格?
还是有一种更有效的方法来查看代码是否需要在遍历整个使用范围之前首先在工作表上运行?
任何帮助都非常感谢,谢谢!
答案 0 :(得分:0)
我没有足够的声誉来对此发表评论,但是请尝试添加:
Application.Calculation = xlCalculationManual
在
下Application.ScreenUpdating = False
然后当您将ScreenUpdating设置回True时,添加:
Application.Calculation = xlCalculationAutomatic
这应该加快代码的速度,尤其是在工作表中发生大量计算的情况下。