ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 6806|回复: 9

[求助] VBA GetObject打开工作表后保存,原工作表不见了

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-11-26 11:59 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 HadesBoss 于 2014-11-26 12:00 编辑

各位老师:
我用VBA  GetObject打开工作薄后保存,里面原来的工作表不见了。
我是下面的代码,自动自数
With GetObject(win & Me.ListBox1.List(r))
‘在外面有循环,依次打开表
'取出一些数后,关闭
        .Close True
End With

取数都很正常,做完事后,再回去单独单开那些用过的工作表,里面就没有内容了,请问是怎么回事呢?

谢谢!

TA的精华主题

TA的得分主题

发表于 2014-11-26 12:08 | 显示全部楼层
技术7的人表述还那么差劲,无怪乎此论坛充斥的尽是怪词怪句了,真心佩服。

“里面就没有内容了”,哪里的“里面”?工作表的?还是整个工作簿的?

提示下:恐怕不是没了,是藏了吧!!!!!!!

再提示下:打开工作簿后,试着去“窗口”菜单,“取消隐藏”命令中找找看。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-26 12:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
燕雀安知 发表于 2014-11-26 12:08
技术7的人表述还那么差劲,无怪乎此论坛充斥的尽是怪词怪句了,真心佩服。

“里面就没有内容了”,哪里的 ...

不好意思,太急噪了一点,没有说清楚,给你理解造成了一定困惑。
1.是工作薄里没有了工作表。
2.在VBE可以看到工作表,但不是隐藏了。visible属性是true(-1- xlsheetvisible)
3.但就是在excel编辑窗口看不到工作表。

TA的精华主题

TA的得分主题

发表于 2014-11-26 12:34 | 显示全部楼层
HadesBoss 发表于 2014-11-26 12:29
不好意思,太急噪了一点,没有说清楚,给你理解造成了一定困惑。
1.是工作薄里没有了工作表。
2.在VBE可 ...

你认真看了前面楼层的回复了吗?
用得着去VBE确认Sheets是否在吗?搞得也太复杂了吧!

再说一遍:在Excel主界面下,点击菜单“窗口”→“取消隐藏……”

TA的精华主题

TA的得分主题

发表于 2014-11-26 12:41 | 显示全部楼层
估计即便你找出了“藏”着的工作簿,再迷惑于你的本来的目的,试着参考如下代码,添加必要的语句:

With GetObject(win & Me.ListBox1.List(r))
‘在外面有循环,依次打开表
'取出一些数后,关闭
        Application.ShowWindowsInTaskBar = False
           Application.ScreenUpdating = False
           .Visible = True
        .Close True
          Application.ShowWindowsInTaskBar = True
          Application.ScreenUpdating = True

End With

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-26 12:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
已经找到原因了。
http://club.excelhome.net/thread-1058654-1-1.html
在代码中加入Windows(.Name).Visible = True

2楼兄弟,我的技术分数不能代表什么,最多只能代表我在某一时期在某一问题上论坛的老师给予的一个评价。
请不要一棍打一片,
谢谢关注!

TA的精华主题

TA的得分主题

发表于 2014-11-26 12:51 | 显示全部楼层
HadesBoss 发表于 2014-11-26 12:44
已经找到原因了。
http://club.excelhome.net/thread-1058654-1-1.html
在代码中加入Windows(.Name).Visi ...

我只能说,你的虚心好学还欠缺很多。

你认为你所找到的参考帖(肯定的是,方向找对了)中的代码,比我在5楼给的代码还完美?!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-26 13:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
燕雀安知 发表于 2014-11-26 12:51
我只能说,你的虚心好学还欠缺很多。

你认为你所找到的参考帖(肯定的是,方向找对了)中的代码,比我 ...

不好意思哈,我回贴前没有见刷新到你的五楼。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-26 13:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
燕雀安知 发表于 2014-11-26 12:41
估计即便你找出了“藏”着的工作簿,再迷惑于你的本来的目的,试着参考如下代码,添加必要的语句:

With ...

很棒!
请原谅我发现晚了。

TA的精华主题

TA的得分主题

发表于 2024-8-9 11:02 | 显示全部楼层
Sub test()  Dim ywd As Workbook '源文件工作簿 Dim mwd As Workbook '目标文件工作簿 Dim ysheet As Worksheet Dim msheet As Worksheet  ' 打开源工作簿和目标工作簿 Set ywd = GetObject("C:\Users\Administrator\Desktop\临时\1.xlsx") Set mwd = GetObject("C:\Users\Administrator\Desktop\临时\2.xlsx")  ' 设置工作表     Set ysheet = ywd.Sheets(1)     Set msheet = mwd.Sheets(1)       ' 复制和粘贴     ysheet.Range("E3:E75").Copy     msheet.Range("E3").PasteSpecial Paste:=xlPasteValues          ' 保存目标工作簿     mwd.Save       ' 清除剪切板     Application.CutCopyMode = False      ' 关闭源工作簿,不保存      ywd.Close SaveChanges:=False      mwd.Close     '    Set ysheet = Nothing '    Set msheet = Nothing '    Set ywd = Nothing '    Set mwd = Nothing   End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 10:42 , Processed in 0.041158 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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