教程 | Excel性能优化方法(八)

01

.Value或.Text或.Value2

  1. .Text 返回单元格的格式化值。速度较慢,如果用户缩放,可能返回 ###,并可能丢失精度。

  2. .Value 在区域被格式化为日期或货币的情况下,返回 VBA 货币变量或 VBA 日期变量。速度较慢,可能会丢失精度,并且在调用工作表函数时可能导致错误。

  3. .Value2 速度快,不会改变正在从 Excel 检索的数据。

02

避免选择并激活对象

选择和激活对象的处理过程比直接引用对象更为密集。通过直接引用 Range 或 Shape 等对象,可以提高性能。下面的代码示例比较了这两种方法。


以下代码示例显示未优化的代码,它选择活动工作表中的每个形状并将文本更改为“Hello”。

  For i = 0 To ActiveSheet.Shapes.Count      ActiveSheet.Shapes(i).Select      Selection.Text = "Hello"  Next i

以下代码示例显示优化后的代码,它直接引用每个形状并将文本更改为“Hello”。

  For i = 0 To ActiveSheet.Shapes.Count      ActiveSheet.Shapes(i).TextEffect.Text = "Hello"  Next i

03

额外性能优化

  1. 通过将数组直接分配给 Range 来返回结果。

  2. 使用显式类型声明变量,以避免在代码执行期间确定数据类型的开销(可能在一个循环中进行多次)。

  3. 对于在代码中频繁使用的简单函数,请自己在 VBA 中实现这些函数而不是使用 WorksheetFunction 对象。

  4. 使用 Range.SpecialCells 方法缩小与代码交互的单元格数量。

04

文件格式与性能

与早期版本相比,从 Excel 2007 开始,Excel 包含各种各样的文件格式。忽略宏、模板、加载项、PDF 和 XPS 文件格式变体,三种主要格式是 XLS、XLSB 和 XLSX。


XLS 格式

XLS 格式与早期版本的格式相同。使用这种格式时,限制为 256 列和 65,536 行。当你以 XLS 格式保存 Excel 2007 或 Excel 2010 工作簿时,Excel 将运行兼容性检查。文件大小几乎与早期版本相同(可能会存储一些其他信息),性能略慢于早期版本。Excel 按照单元格计算顺序执行的任何多线程优化都不会以 XLS 格式保存。因此,在以 XLS 格式保存工作簿、关闭和重新打开工作簿之后,工作簿的计算速度可能会变慢。


XLSB 格式

XLSB 是在 Excel 2007 中引入的二进制格式。它的结构是一个包含许多二进制文件的压缩文件夹。它比 XLS 格式紧凑得多,但压缩量取决于工作簿的内容。例如,10 个工作簿显示从 2 到 8 的大小缩减系数,平均缩减系数为 4。从 Excel 2007 开始,打开和保存性能只比 XLS 格式稍慢。


XLSX 格式

XLSX 是 Excel 2007 中引入的 XML 格式,也是 Excel 2007 中开始采用的默认格式。XLSX 格式是一个包含许多 XML 文件的压缩文件夹(如果将文件扩展名更改为 .zip,则可以打开压缩文件夹并检查其内容)。通常,XLSX 格式创建的文件比 XLSB 格式的文件大(平均为 XLSB 格式的 1.5 倍),但它们仍明显小于 XLS 文件。打开和保存的时间应比 XLSB 文件稍微长一些。

05

打开/关闭/保存工作簿

你可能会发现打开、关闭和保存工作簿要比计算它们慢得多。有时这只是因为工作簿较大,但也可能有其他原因。


如果您的一个或多个工作簿的打开和关闭速度比正常速度慢,则可能是由以下问题之一导致的。


1.临时文件

临时文件可能堆积在你的 \Windows\临时目录中(在 Windows 95、Windows 98 和 Windows ME 中),或在\“文档和设置”\“用户名”\“本地设置”\临时目录中(在 Windows 2000 和 Windows XP 中)。Excel 为工作簿和打开的工作簿所使用的控件创建这些文件。软件安装程序也会创建临时文件。如果 Excel 因任何原因而停止响应,则可能需要删除这些文件。

临时文件太多可能会导致问题,因此应不时地清理它们。然而,如果安装的软件需要重启计算机,但尚未重启,则应该先重启再删除临时文件。

打开临时目录的一种简单的方法是从 Windows“开始”菜单打开:单击“开始”,然后单击“运行”。在文本框中,键入 %temp%,然后单击“确定”。


2.跟踪共享工作簿中的更改

跟踪共享工作簿中的更改会导致工作簿文件大小迅速增加。


3.零碎的交换文件

确保您的 Windows 交换文件所在的磁盘具有大量空间并且定期整理磁盘碎片。


4.具有密码保护结构的工作簿

与不受可选密码保护的工作簿相比,结构受密码保护(“工具”菜单>“保护” > “保护工作簿”>输入可选密码)的工作簿的打开和关闭速度要慢得多。


5.已用区域问题

过大的已用区域可能会导致打开速度变慢以及文件大小增加,在由具有非标准高度或宽度的隐藏行或列导致已用区域过大时尤其如此。有关已用区域问题的详细信息,请参阅最大程度地减小已用区域。


6.工作表上的大量控件

工作表上的大量控件(复选框、超链接等)可能会减慢打开工作簿的速度,因为使用的临时文件数量太多。这还可能导致在 WAN(甚至 LAN)上打开或保存工作簿出现问题。如果遇到此问题,应考虑重新设计工作簿。


7.大量指向其他工作簿的链接

如果可能,在打开包含链接的工作簿之前,先打开要链接的工作簿。通常,打开工作簿比从关闭的工作簿中读取链接要快。


8.病毒扫描程序设置

某些病毒扫描仪设置可能会导致打开、关闭或保存问题或速度变慢,特别是在服务器上。如果你认为这可能是问题所在,请尝试暂时关闭病毒扫描程序。


9.计算缓慢导致打开和保存缓慢

某些情况下,Excel 会在打开或保存工作簿时对其进行重新计算。如果工作簿的计算时间很长并导致问题,请确保将计算设置为“手动”,并在保存 选项之前考虑关闭 计算(“工具” > “选项” > “计算”)。


10.工具栏文件 (.xlb)

检查工具栏文件的大小。一个的典型工具栏文件在 10 KB 和 20 KB 之间。可以通过使用 Windows Search 搜索 *.xlb 来找到 XLB 文件。每个用户都有唯一的 XLB 文件。添加、更改或自定义工具栏会增加 toolbar.xlb 文件的大小。删除该文件将删除所有工具栏自定义项(将其重命名为“toolbar.OLD”更安全)。下次打开 Excel 时将创建一个新的 XLB 文件。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容