有什么方法可以改进下面的代码,使其性能更好吗。我正在尝试在指定的工作表中查找所有包含非"细线"边框的单元格,并将其更改为"细线"。
下面的方法很有效,但它确实降低了我的VBA代码的速度。
感谢
For Each j In ws.UsedRange.Cells
For k = 5 To 10
If j.Borders(k).Weight <> xlThin Then _
j.Borders(k).Weight = xlThin
Next
Next
我现在已经试过下面的了,看起来好多了。屏幕更新已经关闭。有人认为我可以进一步改进性能吗???
Set MyUsedRange = ws.UsedRange.Cells
For Each j In MyUsedRange
For k = 5 To 10
If j.Borders(k).Weight <> xlThin Then _
j.Borders(k).Weight = xlThin
Next
Next
除非有其他我们不知道的代码,否则没有必要单独设置每个单元格,也没有必要在将其设置为某个值之前检查它是否不是某个值。。。
For k = 5 To 10
ws.UsedRange.Borders(k) = xlThin
Next
您的Usedrange很大吗?
msgbox ws.usedrange.address
试试这个代码:
Dim Rg as Range
set Rg = ws.UsedRange
Application.Screenupdating = False
with ws.Range(Rg.Address) 'Avoids a looping usedRange, in case it's updating itself , might also work by using a simple With Rg
For k = 5 To 10
.Borders(k) = xlThin
Next k
end with
Application.Screeupdating = True