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的得分主题

发表于 2019-7-23 10:36 | 显示全部楼层
如果用workooks.open(pathfile)和getobject(pathfile)在打开表格文件之前表格文件已经打开,则此表格文件不会重复打开,处理修改完也不会自动关闭,也不会自动保存。需通过close方法关闭,save方法保存。综上,workooks.open(pathfile)和getobject(pathfile)获取表格文件时会保持表格文件的原有打开或关闭状态。

TA的精华主题

TA的得分主题

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

...

专业,感谢

TA的精华主题

TA的得分主题

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

感谢大神,被这个问题折磨了半天了,用getobject一修改文件就看不见了........

TA的精华主题

TA的得分主题

发表于 2020-3-19 09:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
在vs中发现getobjec和open有下面两点区别 ,VBA中未测试
一是用getobject打开,会将工作表设置为隐藏,需要设置不保存关闭,否则下次打开还是隐藏状态;
二是用getobjet打开的文件,如果运行程序之前工作簿已经是打开状态的话,那copy工作表会出错,用open方法就不会出错;
感觉还是open好用一些,至于隐藏运行,加个ScreenUpdating = False就行了

TA的精华主题

TA的得分主题

发表于 2020-4-22 08:15 | 显示全部楼层
如果要保存结果,用Getobject与open没有任何差别!最后保存关闭前,被保存的工作簿同样闪现一下可见!这一下同样要占用时间!

TA的精华主题

TA的得分主题

发表于 2021-11-3 10:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
新手学习中,希望学习到更多。

TA的精华主题

TA的得分主题

发表于 2022-6-7 08:19 | 显示全部楼层
zorsite 发表于 2018-1-12 10:28
通过getobject打开的Excel文件只要被修改(写)并保存后,就只能在VBE中看到,但用户界面却看不到。就算 ...

,这个很有用,正是我需要的,谢谢!

TA的精华主题

TA的得分主题

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

...

其实就打开表格来说,完全可以忘记GetObject
如果打开非常多的表格,想提速可以新建一个office对象,后台打开就好了,就不会闪烁,稍微能提高一点效率
Sub main()
    Dim app As New Application
    Dim path$
    app.Workbooks.Open (path)
    '处理逻辑
    app.Quit '最后别忘记退出
End Sub

TA的精华主题

TA的得分主题

发表于 2022-8-31 08:09 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lyfegf 发表于 2022-6-7 12:02
其实就打开表格来说,完全可以忘记GetObject
如果打开非常多的表格,想提速可以新建一个office对象,后 ...

亲测还是getobject更快

TA的精华主题

TA的得分主题

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

GetObject Workbooks.Open 的区别:
正好想用GetObject“别存为”的问题。谢谢你的回帖!
通过getobject打开的Excel文件只要被修改(写)并保存后,就只能在VBE中看到,但用户界面却看不到。就算你重启Excel,再去手动打开此文件,也是什么都看不到。不保存就没有这个问题!如果要解决这个问题,必须在wb.close 1前加一句Application.Windows(wb.name).Visible = True。Open语句就完全没有这个问题。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-28 06:17 , Processed in 0.034023 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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