Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4971|回复: 13

[已解决]拷贝当前工作簿出错

[复制链接]
发表于 2011-1-30 15:54 | 显示全部楼层 |阅读模式
5学分
本帖最后由 xdwy81129 于 2011-1-30 16:00 编辑

该宏如下:

1.路径是存在的
2.拷贝前“e:\我 ”    没有该工作簿



Sub 文件()
MsgBox ThisWorkbook.Path & "\" & ThisWorkbook.Name
MsgBox "E:\我" & "\" & ThisWorkbook.Name

    FileCopy ThisWorkbook.Path & "\" & ThisWorkbook.Name, "E:\我" & "\" & ThisWorkbook.Name
End Sub

请教如何解决

注明:不需要用另存为,因为另存为当前工作表已经不是保存前的路径的工作簿
最佳答案
2011-1-31 17:39


Sub 文件()
MsgBox ThisWorkbook.Path & "\" & ThisWorkbook.Name
MsgBox "E:\我" & "\" & ThisWorkbook.Name
    ThisWorkbook.ChangeFileAccess xlReadOnly
    FileCopy ThisWorkbook.Path & "\" & ThisWorkbook.Name, "E:\我" & "\" & ThisWorkbook.Name
    ThisWorkbook.ChangeFileAccess xlReadWrite
End Sub

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-1-30 16:39 | 显示全部楼层
本帖最后由 fjmxwrs 于 2011-1-30 17:10 编辑

你这种方法是把某一个文件复制到指定目录下指定文件名时可用,复制当前文件到指定目录下同名,要用备份SaveCopyAs
以下是保存到同目录下,我文件夹中,同名文件
ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\我" & "\" & ThisWorkbook.Name
回复

使用道具 举报

发表于 2011-1-30 16:54 | 显示全部楼层
ThisWorkbook.SaveCopyAs( "E:\我" & "\" & ThisWorkbook.Name)
回复

使用道具 举报

发表于 2011-1-30 16:56 | 显示全部楼层
Sub 按钮1_单击()
    ThisWorkbook.SaveCopyAs ("E:\我" & "\" & ThisWorkbook.Name)
End Sub
回复

使用道具 举报

 楼主| 发表于 2011-1-30 17:11 | 显示全部楼层
回复 hhzjxss 的帖子

还是希望用复制文件的方法最好,再期待下用复制文件的方法做到

因为用保存,速度上慢了一些,比自己的文件保存慢了约15%到25%的时间
回复

使用道具 举报

 楼主| 发表于 2011-1-31 15:28 | 显示全部楼层
还是希望用复制拷贝的方法比较好
优点:1.速度快,2不产生文件碎片
回复

使用道具 举报

发表于 2011-1-31 15:45 | 显示全部楼层
因为你打开时文件已经锁定,无法复制,需要改变当前文件的读取方式,而这同样要求保存工作簿。
往往许多时候所要追求的完美总是残缺的。
  1. Sub 文件()
  2. MsgBox ThisWorkbook.Path & "" & ThisWorkbook.Name
  3. MsgBox "E:\我" & "" & ThisWorkbook.Name
  4.     ThisWorkbook.ChangeFileAccess xlReadOnly
  5.     FileCopy ThisWorkbook.Path & "" & ThisWorkbook.Name, "E:\我" & "" & ThisWorkbook.Name
  6. End Sub
复制代码

评分

参与人数 1 +5 收起 理由
xdwy81129 + 5 谢谢阿木给出了操作的思维,hhzjxss给完善了.

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2011-1-31 17:02 | 显示全部楼层
回复 阿童木 的帖子

文件虽然打开,但在xp下找到文件,复制到其他地方又可以

奇怪奇怪
回复

使用道具 举报

发表于 2011-1-31 17:14 | 显示全部楼层
本帖最后由 hhzjxss 于 2011-1-31 17:18 编辑
  1. Sub 文件()
  2. FileCopy ThisWorkbook.Path & "\Book1.xls", "E:\我" & "\Book1.xls"
  3. End Sub


复制代码

1、打开的文件不能对自身进行FileCopy

2、如果当前文件夹中有一个 "Book1.xls",则可以用以上代码测试成功!

     后一个文件可以自动复制生成的!



点评

谢谢解释,希望可以再完美解决下  发表于 2011-1-31 17:32

评分

参与人数 1 +2 收起 理由
xdwy81129 + 2 谢谢解释

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2011-1-31 17:30 | 显示全部楼层
回复 阿童木 的帖子

这里属性已经改为只读了,能操作复制完成后可以再改回来吗???
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-20 15:05 , Processed in 0.376604 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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