2016-06-07 261 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

相关问题