excel运行宏太卡(excel运行宏很卡)

Exce表格网 2023-02-26 05:55 编辑:admin 55阅读

1. excel运行宏很卡

有下列的几个原因可能导致工作簿异常膨胀

一。工作表中的格式过于复杂(如多种字体,多种颜色,条件格式等等)

我们都知道,一个工作表有65536*256个单元格,这个非常大的一个范围。我们在应用一些格式设置时,往往为了方便,直接在整行,或整列,或者在多行和多列中应用,这样其实是不妥当的。我相信很少有人会用满整列,或者整行。大量的没有用到的单元格被加上了一些格式后,Excel并不总是知道这个单元格是不需要用的,而往往在计算时会包括这些单元格。另外,格式的多样性(包括字体,颜色等),势必是要造成Excel文件体积变大。1. 用尽量少的格式样式,如字体和颜色,毕竟Excel的优势不是在于文书,版面的展示(那是Word,PowerPoint等的强项)

2. 删除“空白”的单元格。找到工作表中最右下角的单元格(请注意:除非你有自信,请不要过分依赖Excel 的"定位"=>"最后一个单元格"所给你的结果),我是说你可以手工找到这个单元格。使用整行、整列删除命令,这样按Ctrl+End就可以定位到有数据的最后一个单元格了,删除全部,然后保存,在实操中,有人按Ctrl+Shift+向下键时选定了全面,并填充了公式,导致整个工作表容量变大,所以这里提醒各位注意.

二。图片或者其他绘图图形较多,或者图片选择了不恰当的格式

选择适当的图片格式

  

在文档中引用的图片格式一般有三种,BMP、JPG、GIF。BMP格式保存的图片保真度较高,但大小往往是其它两种格式的几倍至几十倍,而照片、扫描图片等用GIF格式保存则失真非常严重,因此建议图片先采用JPG格式保存,然后再引入到文档中,这种格式的图片大小不仅比BMP格式小很多,而且往往也比 GIF的格式小,而保真度与BMP格式则相差无几。

  

利用“插入”引入图片

  

插入图片有两种方法,第一种是将图片保存为一个JPG格式的文件,选择“插入→图片→来自文件”,打开“插入图片”对话框,选中所需插入的图片文件,点击 “插入”即可。另一种是用“画图”、“Microsoft照片编辑器”等打开这个JPG文件,选中并复制,然后在文档中点击“粘贴”即可插入。强烈建议大家采用第一种方法,虽然两种方法得到的图片质量是一样的,但第一种方法所形成的文档的大小可能会比第二种小几十倍!有些人怕麻烦,但这效果带来很大收益, 就是令你的表格变小.值得做啊.彻底清除图形对象:例如我们自己画的一些图形,比如你现在不要用它们了,你选择行或者列范围删除,清除都是清除不掉了,他们只是可能缩小了。这个时候,就可以用到本版"流浪的风"提到过的一个方法

1.先找到其中的一个文本框(找不到就自己添加一个)

2.选中这个文本框,按F5--->定位条件--->对象-->确定

3.按Delete清除

4.保存关闭

5.看看现在文件有多大,打开看看速度还慢不慢

三。公式和名称较多或者公式,名称,数据透视表等所引用的单元格范围过大,或将公式转换成数值

已经不用或较长时间用不到的数据,特别是公式链接引用的,可将其转换为数值形式保存,避免了大量公式占用表格内存空间,这也是导致运行速度变慢的主要原因,如链接到网络时保存可能会显示路径过深等不能保存情况。

选定要转换的公式区域,按右键复制,注意不要移动鼠标,再按右键选择-选择性粘贴,在弹出对话框里选择数值确定即可。这样把公式转换成数值,使表格身材大减.

由于和第二点类似的原因,我们在定义名称,编写公式,指定数据透视表的数据源时往往图一时方便,而指定了过大的单元格范围。例如在A列中有包括标题在内的 10个数据(A1:A10),标题为“姓名”,我们现在要定义一个名称,例如"姓名",很多人会用 插入=〉名称=〉指定=〉首行,这当然是方便的,但这样的话“姓名”这个名称就引用了A2:A65536,而不是实际的A2:A10。你能想象到两者的差别吗?

这时候,有的朋友要说:我这样做的原因是因为我的数据是在不断增加的呀,我可不想每次在变动的时候都去改这个名称。

当然,是对的,谁会愿意这样做呢?

当我确信我定义的这个名称所引用的范围不可能是固定的时候,我采用了一个方法就是“动态命名”。听起来有点耳熟对吗?请看这个例子:为简单起见,我们假设数据都是连续地在A10后面开始添加,也就是说我们希望当我们添加到A15时,这个"姓名"就如我所愿地指向A2:A15,而这一切都是自动完成的。那么你可以在"插入"=〉"名称"=>"定义"对话框中,找到"姓名",然后修改引用位置为=OFFSET($AŪ,0,0,COUNTA($A: $A)-1,1),然后点击"添加"。请留步,先不要急着关闭这个对话框。你现在可以将鼠标放在"引用位置"的这个框里面,由此来验证你要的结果。看到了吗?工作表中那一闪一闪的区域就表示了目前"姓名"所引用的单元格范围。

这只是一个简单的示范,利用这种技巧,可能让我们用最经济的方式得到我们需要的结果。

在公式引用中,在指定数据透视表的数据源时,都可以运用类似的技巧。当然,我不会推荐你写类似这样的公式=CountA(OFFSET($AŪ,0,0,COUNTA($A: $A)-1,1)),而是推荐你先定义好这个名称,然后这样写公式:=CountA(姓名)

这种效果在数组公式中更明显,除非你有足够的耐心和勇气,请不要在数组公式用引用过大的单元格范围,特别是那些不必要的单元格。

请注意,以上的检查应该是针对工作簿中的所有工作表,包括隐藏的

四。VBA代码,尤其是用户窗体的影响(VBA偶不熟)

现在很多朋友都已经学会了用VBE来构建自己的工程,这是多么令人振奋的一件事!但今天我们要讨论的是如何处理VBA工程可能带来一些副作用以及如何压缩它?

有很多测试证明,用户窗体会是增加文件大小的比较突出的原因之一。而反复地改写工程中模块的代码,也或多或少地会增加文件的大小(我们可以这样理解:反复地改写工程代码,总是会留下一些痕迹和碎片)

对于这个问题,可以考虑将所有模块,窗体,都导出为文件,然后保存,然后再依次导入。

关于用户窗体,作为开发者应该考虑的是:是否真的有必要用某个窗体?举个简单的例子,如果只是接收用户输入数值,就完全可以用InputBox方法或者属性,而不需专门用一个窗体。同时,工作表本身可以用来做用户交互的界面,应该充分利用。

五。外部链接(特别是死链接)的影响

有的时候,我们的工作簿中可能包含了一些外部引用,这样我们可以共享其他工作簿的一些信息。如果你的工作簿中包含外部链接,你可以通过"编辑"=> "链接"对话框中查看到。默认情况下,文件在打开时,总是尝试去链接源文件,以刷新数据。在保存时,会纪录链接的变化情况。

当源文件的位置或者内容发生变化时,就可能产生死链接。

我个人非常不主张用链接方式来实现不同文件间数据的共享,这既不是最方便的方法,而且在文件分发过程中会遇到一些问题。我当然知道数据共享是有意义的,但我经常会尝试用其他的途径来实现。

六。关于自动保存选项的考量

选中这个选项时,每次进行保存文档的操作则只保存文档的修改部分,保存速度较快,但文档的大小也会增加,即使是对文档进行删减操作也是如此。目前计算机的速度较快,因此开启这项功能所带来速度的增加毫不明显,但付出的代价是文档的大小急剧膨胀,建议不要选中这个选项。试着关闭这个选项,再对文档稍作修改,然后保存,你会惊奇地发现文档的大小会大幅度缩小!但在执行此操作时要注意:你的电脑是否配有UPS不间断电源,在不通知情况下断掉电源可能会造成数据的丢失。因此养成不时按Ctrl+S键保存文件是很重要,我自己经常这样做的,也推荐大家这样。

七。文件异常退出(或者其他不可预见的原因)造成的工作簿内工作表结构方面的损坏

有时候,由于一些不可预见的原因(例如停电),Excel被迫异常退出。虽然目前没有专门的工具可以检测这种情况对工作簿内部可能造成的损坏程度,但是有理由相信多少是有影响的。

如果你的文件中不存在前面提到的几个问题,同时你还是确信文件体积不正常,你可以尝试如下的方法

新建一个工作簿,把现有文件中的工作表一一剪切到新的工作簿中。请注意这里用的是“剪切”方法,不是“移动或复制工作表”,也不是“复制”。没错,就是先选中工作表中的内容,然后“剪切”,光标移动到目标工作表,然后“粘贴”。这样做唯一不足的地方就是,目标工作表的行和列格式可能要稍微调整一下。

八。针对公司部分表格较大的表,可以实行工作簿分离

对于工作表容量较大,如在10MB以上的或运行速度较慢时,可以采用此方法。但由于分离出来的工作簿变成工作表了,数量将不断大,所以必须规范归好档,建议用文件夹归类放好。你一个表3个工作簿30MB,分离出来变成三个工作表,假设每个工作簿是10MB的话,那分离出来的工作表就是10MB 了,10MB跟30MB运行起来的差别大家可以试试.在公司我是要求他们尽量将大表分离出来.

________________________________________

第二部分:如何给Excel加速

可能影响Excel的运行速度的几个方面

1。设备的配置是否合理?特别是Office 2003,功能的确是很强大了,但相应的对硬件的要求也提高了。一般用户都用Windows Xp系统,然后装Office 2003 ,当然还有其他的软件了,根据自己的计算机的配置情况,你也可能选择只安装部分(而不一定是全部)Office组件和工具。

2。加载宏。Excel内置了几个加载宏程序,可以帮助我们实现一些高级功能。另外,我们自己也可以编写,或者在网上也可以找到更多的各式各样的加载宏程序。在使用加载宏时我可以给出的建议有:首先一定要确认加载宏的来源是否正当?下载后,安装前,强烈推荐要先杀毒。其次,要用的时候再加载它,而不主张一直把所有的加载宏都加载上。现在一般杀毒软件都钳入到OFFICE里

3。自动重算,自动保存选项的考量。这两个选项在一定程度上给我们的工作带来了便利。但在有些时候(例如是公式比较多的时候),特别是自动重算,可能导致运行速度变慢。前面提到:自动保存选项也是可能导致文件增大的一个因素。有选择性地在操作一些文件时关闭这两个选项,可能会对运行速度有帮助。(不过注意在没有设置重算后,数据的变化)

4。迭代计算选项的考量。出于某种特殊的需求,我们可能会允许工作簿进行迭代计算,也就是循环引用(这种有目的的循环引用可以被用到解联立方程等一些特殊的场合)。但是这种循环引用会导致工作表频繁地被计算,当工作表任何地方发生变化时,就被重新计算一次。所以,这一点也是影响Excel速度的原因之一。建议不要勾上这个选项。

5。文件不正常(主要是本文第一部分所提到的一些情况)。这一项的解决不再赘述。

6。不恰当地使用了其他一些外部工具可能导致的问题。例如一些测试版的软件,就好比目前的VSTO 2005 BETA2 ,这里面有一些针对Excel 进行编程的工具。有的朋友(请注意:只是可能)就会发现,安装了这个工具后,或者即使后来卸载了这个工具后,Excel在读文件,特别是内部有宏的文件时非常奇怪地“吃”内存,具体地说就是Excel会疯狂地占用内存,以致根本就无法正常工作。对于这种情况,有一个比较简便的方法就是使用:帮助=〉检测与修复 ,有两个选项:修复时恢复快捷方式;放弃自定义设置并恢复默认设置。如果两个选项都选上了,或者至少第二个选项选上了的话,执行修复完后一般都能解决这个问题。请注意:在执行这个操作之前,请确定你已经清楚这样操作可能导致的一些问题(例如Outlook的个人数据文件可能需要重新指定:文件不会丢失,但修复完重新开Outlook前,请到控制面板=〉邮件 对话框中指定你的个人数据文件)。强烈建议你要先阅读相应的帮助文档。

________________________________________

第三部分:如何识别宏病毒?

在VBE(Visual Basic编辑器)中,激活工程资源管理器,并定位到你要检查的工作簿。 检查工作簿中所有模块(包括ThisWorkBook 模块)中的代码,查看是否有你不熟悉的VBA代码。病毒代码往往格式混乱并且含有大量奇怪的变量名称。另一个选择是使用市售的查毒软件。

为保证安全,建议将OFFICE 的宏安全性级别设置为中级后者以上(请注意:如果设置为高级的话,你将不会收到任何的通知,Excel自动禁止所有宏运行)

________________________________________

第四部分:结语

1。正如我不止一次在新闻组中提到的一样,Excel并不是设计用来存储数据的。所以不推荐在Excel中存放太多的数据。虽然Excel工作簿所允许的工作表数量并没有什么具体的限制(Excel2003),但我推荐的工作表数量不要超过10个。即使前三部分提到的一些问题都解决好了,而数据量如此之大的话,速度还肯定是慢的。

2。在你决定按照以上提到的一些方法进行操作之前,建议你保留一份文件备份到安全的地方。

2. 运行宏太卡了

用户自建的Excel添加的宏是可以使用的,但是邮件发给其他同事后,再下载下来,Excel里面的宏就被禁用了,而且提示管理员禁用了所有宏。

1.网上很多方法都是说在设置里面,将宏设置里面的启用所有宏勾选上,但是没生效,依旧是无法使用。

2.在受信任位置添加一个地址,在该地址下编辑、操作含有宏的Excel是可以正常使用的。比如我添加了桌面,那Excel放在桌面上,宏的问题就解决了。

3. 运行宏之后excel特别卡

首先:导致EXCEL文件过大的原因,不会是公式,应该是有其他的东西如图片或是保存使用次数过多产生的一些不可见的垃圾代码,一般纯文字数字公司的EXCEL文件在几十KB左右,几千行以上的数据一般在几百KB,如果超过这个大小到几十MB甚至一两百M,这样的文件打开也很缓慢,这时文件是需要修复或重建了。

解压附件中的文件后,cleaner.xla为此次需要用的到宏双击该软件,会有安全提示选择启用宏,打开后,你的EXCEL中会出些一个新的菜单项,(OFFICE2007,2010如下)先打开你要修复的EXCEL文件,然后在选加载项中的RECREATE ACTIVE WORKBOOK这个功能,按提示往后NEXT即可,会重新生成一个新的表格副本,原来的文件不会修改或覆盖掉。

4. 宏excel突然变慢

有很多小伙伴刚学习EXCEL函数时,都感到头痛,觉得函数公式太多,使用过程中容易犯错误,函数太长、参数又是英文单词,记不住,所以对函数部份提不起兴趣,觉得是不是要学好函数一定要数学好、英语好、记忆力好才能掌握。

其实任何的学习,掌握知识点背后的规律和规则,就能灵活使用,解决各种难题。

所以对于Excel函数,我们只要熟知输入Excle函数公式时要注意的问题,构建函数学习的整体框架,再多加练习,很快就能掌握好。

下面分享我自己学习函数的几点心得,分享给大家,希望能对你有帮助

一、

函数公式书写时要注意的问题:

01、单元格式不能是文本。

写函数的时候一定要注意单元格格式,可以是任何的格式,但绝对不能是文本,如何是文本的话,输入函数会显示函数本身,不会显示运行的结果。经常有些小伙伴在输入函数的时候,单元格显示的是函数公式,这个时候就要检查看格式是不是文本。

02、

一个完整的函数公式由等号、函数名、参数组成。三要素缺一不可(等号、函数名、参数)。

写函数要等号开头。“=”等号是表示运行公式,所以我们在看到等号结合函数使用的时候,要理解不是简单的等于,它表示的是运行后面的公式。

参数中如果有标点必须是

英语标点

,常输入的标点有逗号、冒号,引号、括号等,都要用英文状态输入,中文标点表格是无法进行运行的。

03、函数名一定要写对。

有些小伙伴会说有些函数太长,而且都是英文字母,输入的时候根本记不住。其实不需要把函数的字母全部输完,只要在单元格里输前几个字母,下面会出来很多函数,这个时候用鼠标选中你想要的那个即可。

二、

建立基本框架,知道有哪些常用函数。

Excel函数部共有几百个,有些小伙伴说看着都头晕,更别要全部都记住了。其实我们工作中常用的函数就十几个,学精通了就可以解决80%的问题。所以我们要做的是对常用函数建立基本的框架,进行归类,当使用的时候知道哪些函数可以用得到。对于函数是都是英语的问题,要用到函数的话,单词不超过30个,那30个经常写一下。运行一下就会记得住,所以并不是要记忆力非常好才能学会。比如sum(合计),sumif(条件求和),vlookup(查找并返回同一行的其他值),offset(偏移函数),if(假如,则),count(计数),countif(条件计数),index(索引函数),int(向下取整数),rand(随机函数), 关于时间的函数,mouth,now等。给每一个函数做一个自己的解释。

三、

熟练掌握EXCEL函数,离不开大量的练习

学了一个函数,后面还要加以大量的练习,

经常听到学函数的小伙伴说,我总是学了又忘了,因为函数一旦不用会很快的忘记。所以尝试着把好用的函数用起来,联系到实际工作中。 比如一个数据问题,你原本要用3个小时才能解决,但是用了这个函数技巧,10分钟就解决了,这就促使你经常去使用,用多了,就记住了。

所以熟练掌握是一个需要反复练习,温故而知新的过程。体会到了函数的好处,你有了学习的动力,就会主动去学习更多好用的函数。那么对于那些工作中还没用得上,但是也想掌握的函数呢,怎么办。

对于不会使用的某个函数,可以直接去看帮助实例,这是最直接有效的方法。通过点表格右上角的EXCEL帮助,或是直接按F1,在Excel帮助中的搜索栏中输入函数,会出来很多函数的知识。

对某个函数点进去,会有这个函数的解释和实例。

只要多实践、多思考、多理解,结合自身的工作实际,对一些非常常用的重要函数要下死功夫,记住其语法结构和参数内容,就能做到熟练输入能灵活运用。

如果我的文章对你有帮助,不要忘了点个赞哦,私信留言可以赠送我整理的一份完整理的函数框架笔记。

5. excel运行宏很卡重启后又可以

频繁与工作表交换数据是导致宏慢的最主要的原因,使用数组获得工作表的数据,在数组中修改,最后把数组写入工作表的方法,可以大幅度的提高速度。

6. excel宏运行后表格无响应

用Ctrl+Pause Break(这个键在数字键左上角)强制退出宏,解决卡死状态后,就要看下宏中是不是有很大的数据计算,或者陷入了死循环了。关键还是在VBA语句上。对了,程序没有问题的话,加快速度最有效的办法就是增加程序前Application.ScreenUpdating = False和程序后Application.ScreenUpdating = True命令,让执行中间命令是关闭屏幕更新,程序结果最后才显示结果。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片