ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 如何不打开相关文件,复制文件1的内容到文件2(在22楼解决!)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-2-13 12:38 | 显示全部楼层
Sub Me_Marco()
    Dim Exwb1 As Object, Exwb2 As Object, tArr
    Set Exwb1 = GetObject("C:\xls文件\表格01.xls")
    Set Exwb2 = GetObject("C:\表格\临时.xls")
    tArr = Exwb1.Sheets("情况表").Range("A1").Resize(12, 8)
    Exwb2.Sheets("报表").Range("B2").Resize(12, 8) = tArr
    Exwb1.Close False
    Exwb2.Close True
    Set Exwb1 = Nothing
    Set Exwb2 = Nothing
End Sub

TA的精华主题

TA的得分主题

发表于 2007-2-13 12:51 | 显示全部楼层
QUOTE:
以下是引用Aeolian-Vox在2007-2-13 12:38:58的发言:
Sub Me_Marco()
    Dim Exwb1 As Object, Exwb2 As Object, tArr
    Set Exwb1 = GetObject("C:\xls文件\表格01.xls")
    Set Exwb2 = GetObject("C:\表格\临时.xls")
    tArr = Exwb1.Sheets("情况表").Range("A1").Resize(12, 8)
    Exwb2.Sheets("报表").Range("B2").Resize(12, 8) = tArr
    Exwb1.Close False
    Exwb2.Close True
    Set Exwb1 = Nothing
    Set Exwb2 = Nothing
End Sub

曾试过这样的方法,但这样会造成目标文件“临时.xls”,操作以后,该文件不能打开!

请测试一下!

TA的精华主题

TA的得分主题

发表于 2007-2-13 12:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
楼上的兄弟是指,在执行代码的过程中,再去打开‘临时.xls’???

TA的精华主题

TA的得分主题

发表于 2007-2-13 12:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
QUOTE:
以下是引用Aeolian-Vox在2007-2-13 12:55:16的发言:
楼上的兄弟是指,在执行代码的过程中,再去打开‘临时.xls’???

就是执行完你的代码,然后再去打开‘临时.xls’文件,查看执行的结果,就会打不开该文件!

TA的精华主题

TA的得分主题

发表于 2007-2-13 13:04 | 显示全部楼层

哦,那不是打不开,而是被隐藏了。在窗口菜单下可以取消隐藏。

Sub Me_Marco()
    Dim Exwb1 As Object, Exwb2 As Object, tArr
    Application.ScreenUpdating = False
    Set Exwb1 = GetObject("C:\xls文件\表格01.xls")
    Set Exwb2 = GetObject("C:\表格\临时.xls")
    tArr = Exwb1.Sheets("情况表").Range("A1").Resize(12, 8)
    Exwb2.Sheets("报表").Range("B2").Resize(12, 8) = tArr
    Exwb1.Close False
    Windows(Exwb2.Name).Visible = True
    Exwb2.Close True
    Set Exwb1 = Nothing
    Set Exwb2 = Nothing
    Application.ScreenUpdating = True
End Sub
这个代码OK了。

TA的精华主题

TA的得分主题

发表于 2007-2-13 13:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

还真是被隐藏了!

但这种方法,实质上还是打开了工作簿,

朋友还有没有别的方法,分享一下!

TA的精华主题

TA的得分主题

发表于 2007-2-13 13:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
QUOTE:
以下是引用stx1980710在2007-2-13 13:15:42的发言:

还真是被隐藏了!

但这种方法,实质上还是打开了工作簿,

朋友还有没有别的方法,分享一下!

我的理解是:不打开文件,其实是用了我们在某种情况下看不到被打开的文件而已。

还有一种办法是用代码操作宏表函数。代码比较烦。

TA的精华主题

TA的得分主题

发表于 2007-2-13 13:23 | 显示全部楼层
QUOTE:
以下是引用stx1980710在2007-2-13 12:33:44的发言:

还是请你老人家做个例子,也让我们学习一下!

关键是如何定位到要复制数据的地方,excel文件的结构我还真不清楚,有待进一步研究,二进制高手可以一试。

TA的精华主题

TA的得分主题

发表于 2007-2-13 13:32 | 显示全部楼层

'以下代码放在你的langques的问题.xls工作簿
Public Sub kkk()

  ol$ = [e4].Value
  nl$ = [e5].Value
 
  Set yb = GetObject([c4] & "\" & [d4])
  Set md = GetObject([c5] & "\" & [d5])
 
   For j% = 1 To Windows.Count
      Windows(j).Visible = True
   Next
  
  yb.Sheets(ol).UsedRange.Copy md.Sheets(nl).[b2]
 
  yb.Close False
  md.Close True

End Sub

俺咋天才看到这个方法,原来兄弟们都会,其实打开工作簿又不妨碍你什么.为何总是不想打开,

agstick:你老家伙要是都不清楚,哪谁还清楚.

[此贴子已经被作者于2007-2-13 13:41:04编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-2-13 18:47 | 显示全部楼层
QUOTE:
以下是引用TGB在2007-2-13 12:36:20的发言:
恭喜LangQueS..

谢谢TGB先生!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-13 15:08 , Processed in 0.037269 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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