转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件使用 >> 办公软件 >> 正文
Excel宏与函数的本质区别         ★★★★

Excel宏与函数的本质区别

作者:闵涛 文章来源:闵涛的学习笔记 点击数:4624 更新时间:2010/6/21 22:28:23

  Excel中的宏与函数或自定义函数,都需要使用到VBA代码,从表面现象来看,极为相似,但是,两者之间却存在本质的区别。

  如果您想深刻了解Excel宏与函数的区别,千万别看漏了下文。

  ①宏做的是简单的字符串替换(注意是字符串的替换,不是其他类型参数的替换);而函数的参数的传递,参数是有数据类型的,可以是各种各样的数据类型。

  ②宏的参数替换是不经计算而直接处理的;而函数调用是将实参的值传递给形参,既然说是值,自然是计算得来的。

  ③宏在编译之前进行,即先用宏体替换宏名,然后再编译的;而函数显然是编译之后,在执行时,才调用的.因此,宏占用的是编译的时间,而函数占用的是执行时的时间。

  ④宏的参数是不占内存空间的,因为只是做字符串的替换;而函数调用时的参数传递则是具体变量之间的信息传递,形参作为函数的局部变量,显然是占用内存的。

  ⑤函数的调用是需要付出一定的时空开销的,因为系统在调用函数时,要保留现场,然后转入被调用函数去执行,调用完,再返回主调函数,此时再恢复现场,这些操作,显然在宏中是没有的。

  与此相关的知识如下:

  所谓"内联函数"就是将很简单的函数"内嵌"到调用他的程序代码中,只样做的目的是为了避免上面说到的第⑤点,目的旨在节约下原本函数调用时的时空开销.但必须注意的是:作为内联函数,函数体必须十分简单,不能含有循环、条件、选择等复杂的结构,否则就不能做为内联函数了。

  事实上,即便你没有指定函数为内联函数,有的编译系统也会自动将很简单的函数作为内联函数处理;而对于复杂的函数,即便你指定他为内联函数,系统也不会理会的。

  函数和宏函数的区别就在于,宏函数占用了大量的空间,而函数占用了时间。函数调用是要使用系统的栈来保存数据的,如果编译器里有栈检查选项,一般在函数的头会嵌入一些汇编语句对当前栈进行检查;同时,CPU也要在函数调用时保存和恢复当前的现场,进行压栈和弹栈操作,所以,函数调用需要一些CPU时间。

  而宏函数不存在这个问题。宏函数仅仅作为预先写好的代码嵌入到当前程序,不会产生函数调用,所以仅仅是占用了空间,在频繁调用同一个宏函数的时候,该现象尤其突出。


[Web开发]上篇—水晶报表导出为word/excel文件的代码  [Web开发]下篇—水晶报表导出为word/excel文件的代码
[Web开发]关于虚拟空间的System.Web.HttpUnhandledExceptio…  [Web开发]在C#中如何对Excel单元格设置背景色以及对Range设…
[网页制作]js将表格导出为word/excel文件的代码  [办公软件]excel菜单栏和右键菜单被屏蔽的解决办法
[办公软件]如何打印Excel的批注  [办公软件]Excel数据分列与合并的经验总结
[办公软件]总结Excel自动填充功能的高级技巧  [办公软件]在Excel的单元格里面如何插入页码
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · 办公软件  · 系统软件
    · 常用软件  · 聊天工具
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao 信息产业部ICP备案号:鄂ICP备11006601号

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台