微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我有这段代码完全符合我的要求,但速度很慢如果可能的话,希望能得到指点以帮助加快速度

如何解决我有这段代码完全符合我的要求,但速度很慢如果可能的话,希望能得到指点以帮助加快速度

Sub copyInsertRow()

ActiveCell.Offset(1,0).EntireRow.Insert
ActiveCell.EntireRow.copy ActiveCell.Offset(1,0).EntireRow
ActiveCell.Offset(1,0).EntireRow.Font.Bold = False
Cells(ActiveCell.Offset(1,0).Row,6).ClearContents
Cells(ActiveCell.Offset(1,4).ClearContents
Cells(ActiveCell.Offset(1,2).ClearContents
Cells(ActiveCell.Offset(1,3).HorizontalAlignment = xlRight

End Sub

这个宏是插入一个新行,然后复制并清除我正在构建的产品定价电子表格的一些数据。它完全按预期工作,但速度非常慢。我对 Excel VBA 还很陌生,如果可能的话,希望有一些大师的指点来帮助我加快速度?感谢您的帮助!

解决方法

我有点惊讶代码很慢,当然除非你有一个非常大的表要插入行。不过,也许这会有所帮助。

您想摆脱所有需要重新评估的重复代码。

Sub CopyInsertRow()

 Application.ScreenUpdating = False  '*** Turn off screen updating for speed.
 ActiveCell.End(xlToLeft).Select '*** Insure you're in Col A
 
 With ActiveCell
    .Offset(1,0).EntireRow.Insert
    .EntireRow.Copy .Offset(1,0).EntireRow
    .Offset(1,0).EntireRow.Font.Bold = False
    .Offset(1,5).ClearContents
    .Offset(1,3).ClearContents
    .Offset(1,1).ClearContents
    .Offset(1,2).HorizontalAlignment = xlRight
 End With
 
End Sub

注意:要使偏移量与此代码一起使用,您必须从已知列开始,因此第二条语句可以让您进入当前行的 A 列。

HTH

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。