我從你的查詢中瞭解到(你的問題標題提示),你不想保存但是設置一個默認路徑。只有當用戶想要保存時,它才應該保存在該目錄中。如果我的理解是正確的,那麼你必須設置使用ChDir()
路徑,例如
ChDir "D:\TMP"
更多從Excel的幫助
CHDIR聲明
改變當前目錄或文件夾。
語法
CHDIR路徑
所需路徑參數是字符串表達式,用於標識哪個目錄或文件夾成爲新的默認的目錄或文件夾中。路徑可能包含驅動器。如果未指定驅動器,ChDir會更改當前驅動器上的默認目錄或文件夾。
備註
的CHDIR語句更改默認的目錄,但不是默認的驅動器。例如,如果默認驅動器是C,在下面的語句更改驅動器d默認的目錄,但C保持默認驅動器:
編輯:
關於節能的手動控制,可以俱樂部ChDir
與Dave在上述評論中提到的Application.GetSaveAsFileName
一樣。
從評論
這是我嘗試過和它的作品跟進。
Sub Sample()
ChDir "C:\Temp"
ret = Application.GetSaveAsFilename(_
fileFilter:="Excel Files (*.xlsx), *.xlsx")
End Sub
即使我做
Sub Sample()
ChDir "C:\Temp"
End Sub
,然後手動嘗試使用File-SaveAs
它保存,它是我指定的文件夾中打開。
更多跟進
在聊天討論和工作的TeamViewer後,我們意識到問題的網絡路徑,以便選擇是取消另存爲和類模塊中重新寫我們自己的。
Option Explicit
Private Sub App_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ret
ChDrive "O"
ChDir "O:\AQS\03 AQS Customers\Calibration Check\Temp"
If SaveAsUI = True Then
Cancel = True
ret = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xls*), *.xls*")
'
'~~> Rest of the code to save the file
'
End If
End Sub
見[此SO鏈接](http://stackoverflow.com/questions/18507042/saving-excel-workbook-to-constant-path-with -filename-from-2-fields) – ZAT 2014-10-20 11:10:00
你看過Application.GetSaveAsFileName()函數嗎? InitialFilename參數應該允許你指定一個默認路徑。 – Dave 2014-10-20 11:36:32
@Siddharth你能解釋一下爲什麼它不是重複的? – 2014-10-20 12:21:07