Excel VBA 将工作表保存到路径作为 Excel 文件并覆盖文件
Posted
技术标签:
【中文标题】Excel VBA 将工作表保存到路径作为 Excel 文件并覆盖文件【英文标题】:Excel VBA Saving Sheet to Path as Excel File and Overwriting File 【发布时间】:2021-03-03 18:55:06 【问题描述】:我在获得一些非常基本的工作时遇到了一些麻烦。有什么想法吗?
Sub Test()
Application.DisplayAlerts = False
ThisWorkbook.Sheets("Master List").SaveAs "C:\Test\ART.xlsx", 52
Application.DisplayAlerts = True
End Sub
【问题讨论】:
Copy
先工作表再保存ActiveWorkbook
?
【参考方案1】:
导出工作表
Option Explicit
Sub exportSheet()
Const FolderPath As String = "C:\Test\"
Const FileName As String = "ART.xlsx"
Const SheetName As String = "Master List"
On Error Resume Next
Workbooks(FileName).Close
On Error GoTo 0
With ThisWorkbook
Application.ScreenUpdating = False
.Sheets(SheetName).Copy
With ActiveWorkbook
Application.DisplayAlerts = False
.SaveAs FolderPath & FileName, xlOpenXMLWorkbook ' 51 (.xlsx)
Application.DisplayAlerts = True
.Close False
End With
' Open Folder Path in Windows File Explorer.
'.FollowHyperlink FolderPath
'.Close
Application.ScreenUpdating = True
End With
End Sub
【讨论】:
VBasic,为您提供 2 个快速问题。我正在运行它并且它有效,但是对于我正在解决的特定场景有 2 个陷阱.. 1 - 是否可以粘贴值而不是粘贴公式? 2 - 是否有一种合乎逻辑的方法来控制多个用户可以运行保存和覆盖文件的权限?我注意到如果我运行该进程并保存文件,然后其他人运行它,它会出错并说权限不存在。很好的解决方案,无论哪种方式,感谢您的帮助! 如果复制的值没问题,那么你可以例如在.Sheets(SheetName).Copy
之后执行ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
。如果没有,你将不得不使用另一种方式来复制。抱歉,我对权限一无所知。以上是关于Excel VBA 将工作表保存到路径作为 Excel 文件并覆盖文件的主要内容,如果未能解决你的问题,请参考以下文章
使用Excel VBA,如何将某一个工作表保存到新建的Excel中?