如何更改Excel的默认“另存为”目录路径?
问题描述:
嗨我只是将此代码嵌入到我的vba宏,但如何更改默认目录,当我使用此宏..例如,当我点击它将要D:/ myfolder如何更改Excel的默认“另存为”目录路径?
我发现这个代码在谷歌:
Sub Copy_ActiveSheet_2()
'Working in Excel 2000-2013
Dim fname As Variant
Dim NewWb As Workbook
Dim FileFormatValue As Long
'Check the Excel version
If Val(Application.Version) < 9 Then Exit Sub
If Val(Application.Version) < 12 Then
'Only choice in the "Save as type" dropdown is Excel files(xls)
'because the Excel version is 2000-2003
fname = Application.GetSaveAsFilename(InitialFileName:="", _
filefilter:="Excel Files (*.xls), *.xls", _
Title:="This example copies the ActiveSheet to a new workbook")
If fname <> False Then
'Copy the ActiveSheet to new workbook
ActiveSheet.Copy
Set NewWb = ActiveWorkbook
'We use the 2000-2003 format xlWorkbookNormal here to save as xls
NewWb.SaveAs fname, FileFormat:=-4143, CreateBackup:=False
NewWb.Close False
Set NewWb = Nothing
End If
Else
'Give the user the choice to save in 2000-2003 format or in one of the
'new formats. Use the "Save as type" dropdown to make a choice,Default =
'Excel Macro Enabled Workbook. You can add or remove formats to/from the list
fname = Application.GetSaveAsFilename(InitialFileName:="", filefilter:= _
" Excel Macro Free Workbook (*.xlsx), *.xlsx," & _
" Excel Macro Enabled Workbook (*.xlsm), *.xlsm," & _
" Excel 2000-2003 Workbook (*.xls), *.xls," & _
" Excel Binary Workbook (*.xlsb), *.xlsb", _
FilterIndex:=2, Title:="This example copies the ActiveSheet to a new workbook")
'Find the correct FileFormat that match the choice in the "Save as type" list
If fname <> False Then
Select Case LCase(Right(fname, Len(fname) - InStrRev(fname, ".", , 1)))
Case "xls": FileFormatValue = 56
Case "xlsx": FileFormatValue = 51
Case "xlsm": FileFormatValue = 52
Case "xlsb": FileFormatValue = 50
Case Else: FileFormatValue = 0
End Select
'Now we can create/Save the file with the xlFileFormat parameter
'value that match the file extension
If FileFormatValue = 0 Then
MsgBox "Sorry, unknown file extension"
Else
'Copies the ActiveSheet to new workbook
ActiveSheet.Copy
Set NewWb = ActiveWorkbook
'Save the file in the format you choose in the "Save as type" dropdown
NewWb.SaveAs fname, FileFormat:= _
FileFormatValue, CreateBackup:=False
NewWb.Close False
Set NewWb = Nothing
End If
End If
End If
End Sub
答
更改这部分代码
fname = Application.GetSaveAsFilename(InitialFileName:=""
包括默认保存路径,你想
fname = Application.GetSaveAsFilename(InitialFileName:=""C:\My Documents\"
请确保您保留尾部反斜杠,否则会建议一个默认文件,其文件名与您提供的路径相同,例如。
fname = Application.GetSaveAsFilename(InitialFileName:=""C:\My Documents"
会导致在“我的文档”保存在位置的名为默认文件对话框“C:\”
+0
惊人!无论如何感谢你的代码,它的工作:) – kappu 2014-10-30 11:18:22
+0
不客气......我注意到一个额外的“在那里蠕动,但我想你发现了。 – Cheesenbranston 2014-10-30 11:29:37
http://stackoverflow.com/questions/5148173/getsaveasfilename-default-文件夹可以满足你的目的。 – ZAT 2014-10-30 09:11:21