2017-07-11 53 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