Excelmacros:为什么不能保存在正确的目录?

我有一个Excelmacros复制从一个特定的工作表中的所有信息,并将其复制到一个新的工作簿。 代码如下:

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文件(包含该macros)位于以下目录中(在Mac上):

/应用/ WORDNET /项目

但是,每次运行macros时,都会将新的Excel文件保存在WORDNET文件夹中,而不是PROJECTS文件夹中。

如何修改代码以便将其保存在正确的位置? 为什么它不保存在原来的Excel文件相同的目录中?

 sPath = ThisWorkbook.Path 

sPath是最后没有分隔符的path(至less在Windows上),所以你必须在你的脚本中添加一个。 在你的情况下,这些文件将被保存到名为"PROJECTS" & NewName /Applications/WORDNET

Unix的:

 ActiveWorkbook.SaveCopyAs sPath & "/" & NewName + ".xls" 

视窗:

 ActiveWorkbook.SaveCopyAs sPath & "\" & NewName + ".xls"