编程论坛
注册
登录
编程论坛
→
Excel/VBA论坛
把表变量设置为worksheet和object 有什么区别?
xuminxz
发布于 昨天 11:08, 28 次点击
把表变量设置为worksheet和object 有什么区别?
只有本站会员才能查看附件,请
登录
当把ws 设置为worksheet时,从来没有出过错,但是用UsedRnage重置已经使用过的区域时,只能设置为对象。
Dim ws As Object就不出错了。
2 回复
#2
yiyanxiyin
昨天 13:03
编译时和运行时问题, object只能到运行时才能判断是否使用错了, 编译不会检查错误, 而明确为worksheet后, 单独一句ws.UsedRange这样的用法是错误的, 所以编译时给你提示出来了, 这样可以预先避免很多错误, 所以定义变量尽量使用类型明确的定义
以下是引用xuminxz在2025-1-21 13:15:34的发言:
按你的说法应该用WOrkSheet不出错,它是比object更明确的定义啊。实际上,用了Object没有出错,结果正常。
结果正常, 不一定就是推荐的写法, ws.UsedRange 这句是毫无意义的, 属于画蛇添足, 所以编译不过, 假设你把这句写成 ws.UseRange, ws如果定义为object那么编译就检查不出来, 如果定义为worksheet,那编译就能检查出来
[此贴子已经被作者于2025-1-21 15:45编辑过]
#3
xuminxz
昨天 13:15
回复 2楼 yiyanxiyin
按你的说法应该用WOrkSheet不出错,它是比object更明确的定义啊。实际上,用了Object没有出错,结果正常。
[此贴子已经被作者于2025-1-21 13:16编辑过]
1