如何用VBA将指定单元格区域保存为C盘指定路径下可自定义名称的新工作簿
复制指定Excel区域到自定义命名新工作簿的VBA代码
使用前请确认C盘根目录已创建名为
Products的文件夹,否则会触发路径不存在的报错
以下是可直接使用的VBA代码:
Sub 导出区域到新工作簿() Dim 目标区域 As Range Dim 新工作簿 As Workbook Dim 文件名 As String Dim 保存路径 As String ' 定义固定保存路径 保存路径 = "C:\Products\" ' 指定要复制的单元格区域,如需固定工作表可将ActiveSheet改为Sheets("你的工作表名") Set 目标区域 = ThisWorkbook.ActiveSheet.Range("A2:B6") ' 弹窗获取用户输入的文件名 文件名 = InputBox("请输入新Excel文件的名称:", "自定义文件名") ' 处理用户点击取消或未输入内容的场景 If 文件名 = "" Then MsgBox "未输入文件名,操作已取消", vbInformation Exit Sub End If ' 新建空白工作簿 Set 新工作簿 = Workbooks.Add ' 复制目标区域内容到新工作簿首表A1位置,如需保留格式可替换为下方说明里的粘贴代码 目标区域.Copy Destination:=新工作簿.Sheets(1).Range("A1") ' 保存新文件为xlsx格式,如需覆盖同名文件可添加参数ConflictResolution:=xlLocalSessionChanges 新工作簿.SaveAs Filename:=保存路径 & 文件名 & ".xlsx", FileFormat:=xlOpenXMLWorkbook ' 不需要自动关闭新工作簿可删除下一行 新工作簿.Close SaveChanges:=False MsgBox "文件已成功保存至:" & 保存路径 & 文件名 & ".xlsx", vbInformation End Sub
自定义调整说明
- 如需保留原单元格的格式、公式、列宽等属性,可将复制粘贴部分的代码替换为以下内容:
目标区域.Copy 新工作簿.Sheets(1).Range("A1").PasteSpecial Paste:=xlPasteAll Application.CutCopyMode = False ' 清除剪贴板选中状态 - 如需修改保存的文件格式,可调整
SaveAs方法里的FileFormat参数,比如存为带宏的工作簿改为xlOpenXMLWorkbookMacroEnabled即可。
内容的提问来源于stack exchange,提问作者Andy V
相关产品推荐
相关产品推荐

