2017-07-11 24 views
1

我有一个Excel宏,它创建一个.txt文件,打开另存为对话框,并填写文件名。但是,我无法弄清楚如何点击另存为对话框上的输入按钮。如何在VBA中打入对话框?

我尝试过使用SendKey的输入,但它似乎不工作。

这是我现在宏观的底部。

myPath = some path that I have 
file_loc = Application.GetSaveAsFilename(myPath, fileFilter:="Text Files 
(*.txt), *.txt") 
wb.SaveAs Filename:=file_loc, FileFormat:=xlText 
wb.Close 

任何帮助将不胜感激!

+3

如果您希望用户输入文件名/路径(在这种情况下您不希望以编程方式点击Enter键),那么您只能使用'GetSaveAsFilename'。如果您知道名称/路径,那么只需调用SaveAs方法即可。 – ThunderFrame

回答

2

感谢您的答案ThunderFrame!我将VBA代码的末尾更改为以下内容,并且工作正常!

Application.DisplayAlerts = False 
file_loc = some path that I have 
wb.SaveAs Filename:=file_loc, FileFormat:=xlText 
wb.Close 
Application.DisplayAlerts = True 
Application.ScreenUpdating = True 

务必把Application.DisplayAlerts = False禁用弹出“你确定要保存此文件?”

+1

是的,'DisplayAlerts'有帮助。但是将DisplayAlerts的* current *值存储在一个变量中,然后*恢复*到该值。在其他代码故意将DisplayAlerts设置为False的情况下,只有当代码明确将其恢复为“True”时,无论程序开始时的情况如何,您都会发现它更安全。 – ThunderFrame

+0

如果'file_loc'只是路径,你是否也需要在路径中指定实际的文件名? – YowE3K

+0

@ThunderFrame很好的电话!我去做。 – Naomi