Excel中使用VBA中遇到的坑

今天因为工作需要,不得不使用VBA在Excel中对数据进行处理,虽然本人有一些编程的经验和逻辑思维能力,但是因为VBA用得少,所以还是费了很多功夫搜索相关的文档。百度上搜索出来的内容参差不齐,感觉都是只言片语,很少有系统化的把VBA讲明白的。尤其是例子感觉有些人说得头头是道,但是都是拷贝粘贴,没有把实践与思考,所以也缺少有说服力的例子。这篇文章也没有办法系统的讲解,但是仅仅是我自己碰到的一些坑,拿来说说。

1、对象的赋值必须用Set语句

经常出现报错“对象变量或With块变量未设置”

例如:

Dim attris As Collection

Set attris = New Collection

2、自定义类必须写在类模块,不能写到模块或者Excel对象中

3、在类模块中自定义类时,注意对象和基本类型在写法上的差异

Private firstLevel

$Public Property Get ReportFirstLevel() As String
    ReportFirstLevel = firstLevel
End Property

Public Property Let ReportFirstLevel(ByVal c As String)
    firstLevel = c
End Property

但是对象的使用如下:

Dim attris As Collection

Public Property Get AttrisCollection() As Collection
    Set AttrisCollection = attris
End Property

Public Property Let AttrisCollection(ByVal c As Collection)
    Set attris = c
End Property

这些坑中会遇到定义具有二义性,执行的时候找不到对象,不过参考上面的代码后问题就都解决了。下面是类的方法定义,定义完成后就像系统定义的类一样,能够自由的操作了。

Public Function compareSimilarity(ByVal compareObject As TDimenReport) As Double

最后在调用对象的时候要用Set 变量 = New 自定义对象名,来实例化类


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值