vba代码执行完后,执行另存,另存为时只打开指定路径,而不保存,可以做到吗?求代码

如题所述

第1个回答  2019-07-05
这个应该可以了,你试试看
Sub 另存为()
Dim strFilePath$
With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = "D:\改为你需要的文件名" & ".xlsm" '改为你需要的路径
If .Show = -1 Then
strFilePath = .SelectedItems(1)
Else
MsgBox "已取消保存": Exit Sub
End If
End With
ThisWorkbook.SaveAs strFilePath
End Sub追问

你好,这段代码我试了,可以实现,但是你这个最后我保存了,在目录里面找不到我文件啊,我要求的是打开指定路径后,后面还有一部分路径,我自己来指定,最后我自己命名文件后保存

追答

.InitialFileName = "D:\改为你需要的文件名" & ".xlsm" '改为你需要的路径
这段包括路径和文件名你改了吗?我了解你意思,文件名无所谓你随便先设定一个,到时候手改。文件路径改成你要的指定路径,需要下一层再手改对吗?还有文件保存后不存在问题,这是一个包含宏的文件,后缀名要改成.xlsm要不保存无效的。

本回答被提问者采纳
第2个回答  2019-07-04
可以做到,代码如下:
With Application.FileDialog(msoFileDialogSaveAs)
.AllowMultiSelect = True
.InitialFileName = ThisWorkbook.FullName
.Title = "另存为"
If .Show > 0 Then .Execute
End With追问

感谢,可能没表述清楚,划下重点1、我的代码执行完后,自动执行另存操作,如同我按下了F12;2、“指定路径”就是说另存为窗口打开时,直接跳到我想保存的途径,即可,后边还有路径我自己来选;3、执行以上就行了,不需保存,后边我自己改名字保存;以上,“指定路径”很重要,你上面写的代码我试了,只能打开另存为窗口,要是这样的话,一句话,sendkeys “{F12}”,就能搞定,不知道,我的表述清楚吗^_^

追答

说实话,还是不懂你的意思。你只要另存为对话框,又不保存,即便你选择了路径和指定了文件名,不保存也是白费了。感觉你的需求就是打开另存为对话框时路径为指定路径并不是系统默认路径。如果指定路径为D:\ABC ,代码如下:
ChDrive "D"
ChDir "D:\ABC"
SendKeys "{F12}"
最后一句你改为我先前的代码,模拟按钮虽然简单,但有可能会得到意料外的结果,比如这里就无法单步调试

追问

多谢

追答

不用谢,采纳即可

本回答被网友采纳
第3个回答  2019-07-04
可以做到,那就需要你手动点一下按钮了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网