用于查找和替换单元格边框的VBA代码花费了很长时间



有什么方法可以改进下面的代码,使其性能更好吗。我正在尝试在指定的工作表中查找所有包含非"细线"边框的单元格,并将其更改为"细线"。

下面的方法很有效,但它确实降低了我的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

相关内容

最新更新