ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 8104|回复: 6

[讨论] 大家一起交流一下VSTO与VBA的区别

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-5-25 22:47 | 显示全部楼层 |阅读模式
      使用过一段时间后,发现VSTO除了.net自身的变化外,与VBA代码的区别实际上是很小的,当然,还是有不少细微的区别,如果不注意,可能让你调试代码走很多弯路。所以,我今天先抛砖引玉,让大家一起交流一下:

    1、在VBA中两个日期是可以直接相减的, 但在VSTO中,要用TimeSpan的方法:
            在VBA中: Dim D As Date = #25/5/2012#
                              msgbox now()-D
            在VSTO中:msgbox  Now.Subtract(D).TotalDays

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-25 22:51 | 显示全部楼层
2、单元格值比较方面,存在差异
   在VBA中,可以:cells(1,1).value<> "5"  ,但在VSTO中,这个表达式可能出错,如果值不是字符型的话,
必须改为:
     typename(cells(1,1).value)="String"  andalso  cells(1,1).value<> "5"

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-25 22:54 | 显示全部楼层
3、数值类型发生了很大变化
   VBA中  Integer  是16位,VSTO中是 32 位;
   VBA中  Long     是32位, VSTO中是 64 位;
   因此,为了你代码的兼容性,建议在VSTO中采用Integer这种数据类型。

  

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-25 22:56 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-5-26 22:38 | 显示全部楼层
本帖最后由 liucqa 于 2013-5-26 22:42 编辑

vb.net和vb(vba)基本不是一种东西,你这么写区别,写一年也写不完

.net框架里面上千个类,会累死你的

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-27 20:31 | 显示全部楼层
没有人看,算了,不写了。{:soso_e135:}

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-6-14 13:43 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-4 22:44 , Processed in 0.034404 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表