首页 > 解决方案 > 在 VBA 代码中使用命名单元会减慢宏的速度吗?

问题描述

在 VBA 代码中使用命名单元会减慢宏的速度吗?

我假设如果您在 VBA 代码中使用一个或两个命名的单元格/范围,它不会对其执行时间产生很大影响。但是,我很好奇命名单元格/范围的过度使用是否会减慢宏的速度。

标签: excelvbaperformancenamed-ranges

解决方案


命名范围对电子表格的影响:

我找到了以下信息。

Named Ranges:
1. allows users to save time
2. enhances automated data analysis
But:
3. increases the size of files and significantly 
   slows down basic Excel functionality.

参考:https ://medium.com/@rzacharia/excel-named-ranges-the-good-and-the-really-ugly-894e04fb16e5

命名范围对 VBA 执行的影响:

这取决于您如何使用它。例如,如果您创建了大量的命名范围并在循环中调用它们,那么它会降低性能。因为每次excel都需要解析名称。

如果您使用 Range("A1:A30") 而不是命名范围,那么与命名范围相比,Excel 不需要执行任何额外的操作。

为了测试这一点,我创建了一个命名范围(A1:A30)并以不同的计数在循环中调用它,这就是我发现的(提到的时间以秒为单位)。

NamedRange  Range   Loop Count
1.64         1.57   100000
3.3          3.17   200000
8.38         7.9    500000

结论:

1. If you are using Named Range with limited number and not using in loop with larger count then it may not create any issue.
2. It may slow down the performance 
   2.1 if you are using Named Range in loop with large count.
   2.2 if you are using large number of Named Ranges.

希望这会帮助你。


推荐阅读