|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
数据库技术
→
『 Excel/VBA论坛 』
→ 把表变量设置为worksheet和object 有什么区别?
我的收件箱(0)
共有
236
人关注过本帖
标题:
把表变量设置为worksheet和object 有什么区别?
只看楼主
加入收藏
xuminxz
等 级:
贵宾
威 望:
41
帖 子:770
专家分:2537
注 册:2011-5-8
结帖率:
60%
楼主
收藏
已结贴
√
问题点数:10 回复次数:3
把表变量设置为worksheet和object 有什么区别?
把表变量设置为worksheet和object 有什么区别?
图片附件: 游客没有浏览图片的权限,请
登录
或
注册
当把ws 设置为worksheet时,从来没有出过错,但是用UsedRnage重置已经使用过的区域时,只能设置为对象。
Dim ws As Object就不出错了。
dBase有人接盘了。
2025-01-21 11:08
举报帖子
使用道具
赠送鲜花
yiyanxiyin
等 级:
版主
威 望:
9
帖 子:256
专家分:1960
注 册:2023-6-29
第
2
楼
收藏
得分:10
编译时和运行时问题, 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编辑过]
2025-01-21 13:03
举报帖子
使用道具
赠送鲜花
xuminxz
等 级:
贵宾
威 望:
41
帖 子:770
专家分:2537
注 册:2011-5-8
第
3
楼
收藏
得分:0
回复 2楼 yiyanxiyin
按你的说法应该用WOrkSheet不出错,它是比object更明确的定义啊。实际上,用了Object没有出错,结果正常。
[此贴子已经被作者于2025-1-21 13:16编辑过]
dBase有人接盘了。
2025-01-21 13:15
举报帖子
使用道具
赠送鲜花
xuminxz
等 级:
贵宾
威 望:
41
帖 子:770
专家分:2537
注 册:2011-5-8
第
4
楼
收藏
得分:0
回复 2楼 yiyanxiyin
ws.UsedRange 是重置使用区域,也就是回收删后的区域。
用rows.delete或其它方式删除某些行、列、单元格后,usedRange返回的值不变;包括用Ctrl+End定位的位置还是删除前的位置。重置后,它将指向真正使用区域的尾部。
dBase有人接盘了。
2025-01-31 15:36
举报帖子
使用道具
赠送鲜花
4
1/1页
1
快速回复:
把表变量设置为worksheet和object 有什么区别?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027152 second(s), 9 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved