基本上,我有以下代码说明我要将哪些单元格复制到另一个工作簿中:
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中写入的内容
答案 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
更改为所需的任何位置。用户可以根据需要在文件对话框中进行更改。