EXCEL VBA的SAVEAS问题

写了一个宏,想将宏所在的工作簿另存到D:盘的文件夹下,然后打开宏所在工作簿F盘的注销清单1.xls,但在执行开注销清单1.xls的时候报错,说在D:盘TEMP目录下找不到... 写了一个宏,想将宏所在的工作簿另存到D:盘的文件夹下,然后打开宏所在工作簿F盘的注销清单1.xls,但在执行开注销清单1.xls的时候报错,说在D:盘TEMP目录下找不到注销清单1的文件,现在想问
在VBA中用SAVEAS另存为就会把宏执行权转给另存的那个文件吗,不然的话,为什么另存后thisworkbook一直指向这个文件,而且用ACTIVITE激活宏所在的文件就出现下标越界错误,是不是另存为后宏所在工作簿就被关闭了呢,请问有什么办法能避免或是将宏所在原文件激活呢?代码如下
第一次写的代码,在第三行就出错,说找不到这个文件,说明ThisWorkbook.Path已经不是F盘了。
ThisWorkbook.SaveAs ("d:\temp\temp全省站点名单1.xls")
ThisWorkbook.Activate
Workbooks.Open Filename:=ThisWorkbook.Path & "\注销清单1.xls" '打开文件
Workbooks("注销清单1.xls").SaveAs ("d:\temp\temp注销清单1.xls")

第二次写的代码,也是在一个网站上的高手建议的,但发现一关闭当前工作薄,这句后面的都不执行了,就像是用END SUB一样
Application.ScreenUpdating = False
ThisWorkbook.SaveAs ("d:\temp\temp全省站点名单1.xls")
MsgBox ThisWorkbook.FullName ‘这句执行显示仍是上面全省站点名单1
ThisWorkbook.Close ‘这句一执行,啥也没有啦!
Workbooks.Open Filename:=ThisWorkbook.Path & "\注销清单1.xls" '打开文件
Workbooks("注销清单1.xls").SaveAs ("d:\temp\temp注销清单1.xls")
ThisWorkbook.Activate
For cz = 1 To Sheet15.Range("a65536").End(xlUp).Row

现在改的代码,变了个思路,想一开始就把文件路径保存一下,以后都用这个路径来打开文件等,这段代码能执行完,但发现后续整个程序做的操作全都是在另存为后的TEMP全省站点名单1里,也就是说只要另存了文件,宏就转到了这个文件下执行,所有的thisworkbook全都指向这个新文件。
Dim ylj As String
ylj = ThisWorkbook.Path
ThisWorkbook.SaveAs ("d:\temp\temp全省站点名单1.xls")
FileCopy ylj & "\注销清单1.xls", "d:\temp\temp注销清单1.xls"
Workbooks.Open Filename:=ylj & "\站点名单1.xls"
Workbooks(ylj & "\站点名单1.xls").Activate ' 这句执行出错,下标越界
MsgBox ThisWorkbook.FullName
展开
 我来答
鄙人_焉哉乎也
2013-10-24 · TA获得超过167个赞
知道小有建树答主
回答量:89
采纳率:0%
帮助的人:130万
展开全部
Saveas 是把当前文件另存为另一个文件,所以"当前"文件就变成目标文件了,想要做一个备份,而真正的保留当前文件,请使用 SaveCopyAs,这样才可以达到楼主的目的...
即:
把 ThisWorkbook.SaveAs ("d:\temp\temp全省站点名单1.xls") 改为:
ThisWorkbook.SaveCopyAs ("d:\temp\temp全省站点名单1.xls")
2724421
2013-10-24 · TA获得超过2493个赞
知道大有可为答主
回答量:1551
采纳率:71%
帮助的人:944万
展开全部
Workbooks(ylj & "\站点名单1.xls").Activate

改为:Workbooks("站点名单1.xls").Activate
更多追问追答
追问
先感谢一下你这么快的回答,改动完执行是没出错,但是站点名单1.xls仍没激活,MsgBox ThisWorkbook.FullName执行完仍显示d:\temp\temp全省站点名单1.xls,之后执行的一切操作仍在这个文件里执行,我的宏在站点名单1.xls里,想操作的也是站点名单1.xls,请指教!
追答
如果你saveas 后不想让目标转为saveas后的目标那么你设置createbackup参数为true即可

ThisWorkbook.SaveAs "d:\temp\temp全省站点名单1.xls", CreateBackup:=True
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式