如何将以下excel数据复制到其他工作簿中,并提示用户进行保存?

时间:2019-03-04 14:21:35

标签: excel vba

基本上,我有以下代码说明我要将哪些单元格复制到另一个工作簿中:

Application.CopyObjectsWithCells = False
ActiveSheet.Copy
Range("A1:T40").Copy

Range("A1:T40").PasteSpecial Paste:=xlPasteValues
Application.CopyObjectsWithCells = True

VBA脚本会自动打开一个新工作簿,其中包含从另一个工作簿粘贴的所有数据。

但是现在我还希望它在新工作簿打开时提示用户一个保存窗口,这怎么办?

更新:

以下代码提示用户保存excel工作簿,该如何添加以保存到具有特定名称的特定文件中?

fileSaveName = Application.GetSaveAsFilename( _
 fileFilter:="Excel Workbooks (*.xlsx*),*.xlsx*")
If fileSaveName <> False Then
 MsgBox "Save as " & fileSaveName

End If

更新2

Dim path As String
Dim filename1 As String


Application.CopyObjectsWithCells = False
ActiveSheet.Copy
Range("A2:T40").Copy

Range("A2:T40").PasteSpecial Paste:=xlPasteValues
Application.CopyObjectsWithCells = True



path = "C:\Users\jmills\Documents\Report\"

filename1 = Range("H1")
Application.DisplayAlerts = True
ActiveWorkbook.SaveAs Filename:=path & filename1 & ".xlsx", FileFormat:=xlOpenXMLWorkbook

Application.DisplayAlerts = True


End Sub

如何保持另存为提示?我希望它允许我在保存名称之前对其进行编辑

当前上面的代码会自动保存单元格H1中写入的内容

1 个答案:

答案 0 :(得分:1)

您可以使用Application.SaveAsFileName触发“保存文件名”对话框。这是您可以使用的更多信息:https://docs.microsoft.com/en-us/office/vba/api/excel.application.getsaveasfilename

此输出是您可以将工作簿保存到的路径。 因此,此后,您需要使用类似ActiveWorkbook.SaveAs Filename:=[output from application.saveasfilename]

赞:

path = "C:\Users\jmills\Documents\Report\"
fileSaveName = Application.GetSaveAsFilename( initialFilename:=path & "myworkbook", _
 fileFilter:="Excel Workbooks (*.xlsx*),*.xlsx*")
Application.DisplayAlerts = True
ActiveWorkbook.SaveAs Filename:=fileSaveName, FileFormat:=xlOpenXMLWorkbook

您可以在其中将myworkbook更改为所需的任何位置。用户可以根据需要在文件对话框中进行更改。