2016-06-07 87 views
0

我有一個代碼從工作簿中選取一些工作表並創建一個新文件。但它會將新生成的文件保存在隨機位置。我想將新文件保存在特定位置。 尋找幫助和線程我已經隨機使用使用宏將AS Excel文件保存到特定位置

Application.GetSaveAsFilename 

它給我彈出窗口的「另存爲」,但它不保存在我所提到的位置的文件。任何人都可以看到我的宏,並幫助我。

這是我的代碼。

Sub SaveMain() 

Dim Flname As String 
Dim ws As Worksheet 

Application.EnableEvents = False 

For Each ws In ActiveWorkbook.Sheets 
ws.Visible = xlSheetVisible 
Next 
ActiveWorkbook.Sheets("3").Range("N15").Value = ActiveWorkbook.Sheets("Calculations").Range("W23").Value 
ActiveWorkbook.Sheets("3").Range("N16").Value = ActiveWorkbook.Sheets("Calculations").Range("W28").Value 
'there are some more copy cells 

Flname = "Pump Datasheet-" & InputBox("Save file as") & ".xls" 
Sheets(Array("Cover", "2", "3", "4", "5", "6", "7", "8", "9")).Copy 
newfilename = Flname 
With ActiveWorkbook 
.SaveAs newfilename, FileFormat:=50 
Application.GetSaveAsFilename 
.Close 0 
End With 
For Each ws In ActiveWorkbook.Sheets 
If ws.Name <> "Main Calc" Then 
ws.Visible = xlSheetVeryHidden 
End If 

Next 
Application.EnableEvents = True 

End Sub 

回答

1

試試這個格式:

saveAsFileName = Application.GetSaveAsFilename(InitialFileName:=fName, FileFilter:="Excel Files (*.xlsx), *.xlsx") 
If saveAsFileName <> "False" Then 
    'Do something here 
Else 
    'Do something else here 
End If 
+0

無法運行它。非常新的宏。 什麼部分應該替換爲這個代碼? 給我錯誤運行時錯誤'9' 訂閱超出範圍 – Eric

0

Flname = "C:\temp\Pump Datasheet-" & InputBox("Save file as") & ".xls"

這將文件保存爲 「從inputbox.xls泵數據表內容」 在C:\temp

目前你不指定一個文件夾名稱,因此Excel只是將其保存在默認的保存位置。

+0

我可以設置位置嗎?我只想彈出另存爲窗口,這樣可以保存我想要的任何地方,而不是一直固定的路徑。 – Eric

+0

當然 - 只要抓住用戶的路徑並將其附加到要使用的文件名前面:'filepath = InputBox(「將文件保存在位置:」)'將獲得文件路徑,然後執行'ActiveWorkbook'。 SaveAs filepath&「\」&Flname,FileFormat:= 50'(將Flname設置爲需要的任何文件名,包括文件類型後綴) – Dave

+0

給了我錯誤。它說文件路徑不存在。 我不希望我每次生產時都要保存不同位置的修復文件路徑。 – Eric

相關問題