如何获得"另存为"使用宏在新生成的文件中选项。

时间:2016-06-06 16:08:20

标签: excel vba excel-vba

我已经编写了一个从工作簿中提取工作表的代码。 问题是工作表被提取并被创建为新文件,被保存在我的文档或某个随机位置。无论如何,我可以得到一个提示窗口,它给了我"另存为"选项 ?所以我可以将它保存在我想要的位置?

通过在这个论坛中搜索,我尝试了两种不同的东西,

 With Dialogs(wdDialogFileSaveAs)
.Name = "MyTitle"
.Show

我也累了

App.SendKeys("{F12}")
enter code here

但它给了我错误。

这是我的代码任何人都可以提供帮助。我不知道我能把它放在哪里。(可能还有一些额外的不必要的东西,因为我不知道代码是如何工作的,但不知怎的,我试图让它工作)

Sub GetCalcs()

Dim Flname As String
Dim ws As Worksheet

Application.EnableEvents = False
For Each ws In ActiveWorkbook.Sheets
ws.Visible = xlSheetVisible
Next

Flname = "Calculation-" & InputBox("Enter Pump tag No P-XXXX:") & ".xls"
Sheets(Array("Calculations")).Copy

newfilename = Flname

With ActiveWorkbook
.SaveAs newfilename, FileFormat:=50
.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

2 个答案:

答案 0 :(得分:1)

我认为您希望在文件名中包含路径。只需在文件名中添加一个文件路径,就可以了!

  

Flname = {您希望保存到的路径}&amp; “计算 - ”&amp;   InputBox(“输入泵标签号P-XXXX:”)&amp;是 “.xls”

如果您想自定义每次要保存的位置,只需弹出一个提示框。

  

使用ActiveWorkbook   saveLocation = Application.InputBox(提示:=“请输入保存   location:“,标题:=”保存位置“,   默认值:=“C:\ Users \ User \ Documents”,类型:= 2)

     

Flname =“计算 - ”&amp; InputBox(“输入泵标签号P-XXXX:”)&amp;   “.xls”表格(数组(“计算”))。复制

     

newfilename = saveLocation&amp; Flname

     

.SaveAs newfilename,FileFormat:= 50.Close 0 End With For Each ws In   ActiveWorkbook.Sheets如果ws.Name&lt;&gt; “主要计算”然后ws.Visible =   xlSheetVeryHidden

     

结束如果

     

下一步

答案 1 :(得分:1)

怎么样:

Application.GetSaveAsFilename