Excel 宏:为啥不能保存在正确的目录中?
Posted
技术标签:
【中文标题】Excel 宏:为啥不能保存在正确的目录中?【英文标题】:Excel Macro: why won't this save in the correct directory?Excel 宏:为什么不能保存在正确的目录中? 【发布时间】:2011-07-26 16:00:07 【问题描述】:我有一个 Excel 宏,它从特定工作表中复制所有信息并将其复制到新工作簿中。代码如下:
Option Explicit
Sub TwoSheetsAndYourOut()
Dim NewName As String
Dim nm As Name
Dim ws As Worksheet
If MsgBox("Copy specific sheets to a new workbook" & vbCr & _
"New sheets will be pasted as values, named ranges removed" _
, vbYesNo, "New Copy") = vbNo Then Exit Sub
With Application
.ScreenUpdating = False
On Error GoTo ErrCatcher
Sheets("Input").Copy
On Error GoTo 0
For Each ws In ActiveWorkbook.Worksheets
ws.Cells.Copy
ws.[A1].PasteSpecial Paste:=xlValues
ws.Cells.Hyperlinks.Delete
Application.CutCopyMode = False
Cells(1, 1).Select
ws.Activate
Next ws
Cells(1, 1).Select
For Each nm In ActiveWorkbook.Names
nm.Delete
Next nm
NewName = InputBox("Please specify the name of your new workbook", "New Copy", "input")
Dim sPath As String
sPath = ThisWorkbook.Path
ActiveWorkbook.SaveCopyAs sPath & NewName + ".xls"
ActiveWorkbook.Close SaveChanges:=False
.ScreenUpdating = True
End With
Exit Sub
ErrCatcher:
MsgBox "Specified sheets do not exist within this workbook"
End Sub
但是,它不会将新的 Excel 文件保存在正确的目录中。包含宏的原始 Excel 文件位于以下目录(在 Mac 上):
/应用程序/WORDNET/项目
但是,每次我运行宏时,它都会将新的 Excel 文件保存在 WORDNET 文件夹中,而不是 PROJECTS 文件夹中。
如何修改代码以将其保存在正确的位置?以及为什么不保存在与原始Excel文件相同的目录中?
【问题讨论】:
【参考方案1】:sPath = ThisWorkbook.Path
sPath
是末尾没有分隔符的路径(至少在 Windows 上),因此您必须在脚本中添加一个分隔符。在您的情况下,文件将保存到/Applications/WORDNET
,名称为"PROJECTS" & NewName
Unix:
ActiveWorkbook.SaveCopyAs sPath & "/" & NewName + ".xls"
窗户:
ActiveWorkbook.SaveCopyAs sPath & "\" & NewName + ".xls"
【讨论】:
以上是关于Excel 宏:为啥不能保存在正确的目录中?的主要内容,如果未能解决你的问题,请参考以下文章
我在excel中使用VBA宏程序时,报错无法执行,为啥!前提,程序没有问题,因为单位机器运行良好