ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] getobject和workbooks.open哪个更好!

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-3-23 22:09 | 显示全部楼层
zhaogang1960 发表于 2012-3-21 01:11
对于没有密码、链接等一般工作簿来说,可以使用GetObject函数,除隐藏方式打开工作簿外,感觉速度稍快些

...

赵老师,最近几天我也在弄这个GetObject函数,发现如果某些原因造成打开文件的速度很慢(比如是将要打开的文件放到公共盘上),然后再使用GetObject打开,仍然可以看到这个文件的内容一闪而过……

TA的精华主题

TA的得分主题

发表于 2012-3-23 22:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
liucqa 发表于 2012-3-20 20:49
如果有密码的话,就只能先open,再getobject了

有密码也可以使用GetObject,使用Sendkey就行了

TA的精华主题

TA的得分主题

发表于 2012-3-23 22:15 | 显示全部楼层
hustnzj 发表于 2012-3-23 22:10
有密码也可以使用GetObject,使用Sendkey就行了

总不能把键码事先写到代码里面吧。

你想想一个包括字母大小写数字特殊字符+日文等UNICODE的密码,怎么能用senkeys解决呢?

TA的精华主题

TA的得分主题

发表于 2012-3-23 22:39 | 显示全部楼层
本帖最后由 hustnzj 于 2012-3-23 22:41 编辑
liucqa 发表于 2012-3-23 22:15
总不能把键码事先写到代码里面吧。

你想想一个包括字母大小写数字特殊字符+日文等UNICODE的密码,怎么 ...


我试过的,只要是能输入的都可以。
而且workbook.open不也是要写键码到代码里?呵呵

点评

嗯,好像是可以,以前还没发现呢。不过是否对所有字符有效还得详细测试。  发表于 2012-3-23 23:45

TA的精华主题

TA的得分主题

发表于 2012-3-24 06:48 | 显示全部楼层
本帖最后由 hustnzj 于 2012-3-24 07:02 编辑

个人感觉Getobject函数没有Workbooks.Open好用:
1) 通过getobject打开的Excel文件只要被修改(写)并保存后,就只能在VBE中看到,但用户界面却看不到。就算你重启Excel,再去手动打开此文件,也是什么都看不到。不保存就没有这个问题!如果要解决这个问题,必须在wb.close 1前加一句Application.Windows(wb.name).Visible = True。Open语句就完全没有这个问题。
2) 通过getobject打开有打开密码的工作簿时,要使用Sendkeys并且要DoEvents,在同时有其他类似密码输入的登录窗体时,处理起来也是比较麻烦的。而且在有循环使用getobject的场合,多次重复使用DoEvents也许会出现意想不到的问题。而Open语句就非常稳定。
3) 一般情况下,getobject给人的感觉是隐藏打开工作簿的。但经过我的实际测试,发现如果打开的文件放在公共盘上,由于网速的限制等原因导致打开工作簿的速度很慢时,也还是能看到这个文件的内容。所以……


评分

8

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-11-17 13:19 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-11-17 13:18 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-12-3 21:02 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-12-3 21:08 | 显示全部楼层
zhaogang1960 发表于 2012-3-21 01:11
对于没有密码、链接等一般工作簿来说,可以使用GetObject函数,除隐藏方式打开工作簿外,感觉速度稍快些

...

学习了赵老师精妙的解答,谢谢

TA的精华主题

TA的得分主题

发表于 2015-2-7 20:26 | 显示全部楼层
hustnzj 发表于 2012-3-24 06:48
个人感觉Getobject函数没有Workbooks.Open好用:
1) 通过getobject打开的Excel文件只要被修改(写)并保存 ...

精妙!收藏一下。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-28 11:04 , Processed in 0.036495 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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