VBA .font.bold 优化

标签 vba excel

我正在使用相同的宏格式化两个不同的报告。两个电子表格之间的性能截然不同。宏在第一个报告上立即起作用,而在另一个报告上大约需要 10 秒。我已将其范围缩小到使单元格 A1 加粗的语句。当省略粗体语句时,两个电子表格都会立即执行宏。我尝试了以下格式化单元格 A1 的方法。

  • Range("A1").Font.Bold = True
    
  • Range("A1:A1").Font.Bold = True
    
  • With Range("A1")
        .Font.Bold = True
    End With
    
  • ActiveSheet.Cells(1, 1).Font.Bold = True
    

  • 据我所知,.Font.Bold = True是使单元格变为粗体的唯一方法,因此无法通过使用其他命令来规避该问题。以上是谷歌建议采取此类行动的所有方式。两个电子表格都是 .xls 扩展名。为什么在执行相同的语句时,一个电子表格的性能可能会有很大的不同?

    最佳答案

    可能有很多原因。我认为主要是更改需要ScreenUpdating并且两个工作表都使用不同数量的内存来计算您的工作表布局,例如具有形状、枢轴、图表、隐藏行等。

    要解决此问题,请关闭 ScreenUpdating在你的计算之前。然后再次打开它,如下所示

    Application.ScreenUpdating = False
    'Your code here
    Application.ScreenUpdating = True
    

    此外,为了优化您的代码,请使用以下内容:
  • 关闭AutomaticCalculations
  • 将文件另存为二进制 Excel:.xslb
  • 关于VBA .font.bold 优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31141644/

    相关文章:

    vba - 想要 Excel 中的 VBA 读取非常大的 CSV 并创建 CSV 小子集的输出文件

    vba - 更改单元格中的字符串

    excel - 将文本文件数据提取到工作表

    excel - 工作表与工作表(1),我不能从 .net 互操作中做到这一点吗?

    c++ - 如何在 VS2010 C++ 宏中使用 DTE.ExecuteCommand ("Edit.GoToDefinition")?

    excel - 当我尝试将一个对象添加到集合中时,所有对象值都更改为当前对象,怎么办?

    sql - 记录集类型不匹配问题

    VBA 填充标题下的第一行

    vba - Excel VBA 尝试编辑组内形状的可见性

    VBA Excel 谷歌查找