【问题标题】:How to hit enter in dialog box in VBA?如何在 VBA 的对话框中按 Enter 键?
【发布时间】:2017-07-11 23:24:44
【问题描述】:

我有一个 Excel 宏,它可以创建一个 .txt 文件,打开“另存为”对话框,然后填写文件名。但是,我不知道如何点击“另存为”对话框上的 Enter 按钮。

我尝试过使用 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

任何帮助将不胜感激!

【问题讨论】:

  • 如果您希望用户输入文件名/路径(在这种情况下您不想以编程方式按 Enter 键),您只会使用 GetSaveAsFilename。如果您知道名称/路径,则只需调用 SaveAs 方法。

标签: vba excel sendkeys


【解决方案1】:

感谢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 以禁用弹出“您确定要保存此文件吗?”

【讨论】:

  • 是的,DisplayAlerts 有帮助。但是将 DisplayAlerts 的 current 值存储在一个变量中,然后 restore 到该值。如果其他代码故意将 DisplayAlerts 设置为 False,您会发现更安全,只是为了让您的代码将其显式恢复为 True,而不管在过程开始时它是什么。
  • 如果file_loc只是路径,是不是还需要指定路径中的实际文件名?
  • @YowE3K 是的,确实如此,但我在 VBA 中创建了一个函数,该函数接受确定我从 Python 输入的文件名的参数! :)
猜你喜欢
  • 2010-10-27
  • 2011-11-22
  • 1970-01-01
  • 2012-05-06
  • 2020-08-29
  • 2022-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多