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保存时超过一定次数不能正常保存是啥问题?

通过宏导入数据后保存excel文件的问题

我在excel中使用VBA宏程序时,报错无法执行,为啥!前提,程序没有问题,因为单位机器运行良好

Excel 在团队中使用电子表格打开、修改、保存

求问高手如何用Excel做一个文件夹的目录索引,需要能实时更新的?谢谢了

EXCEL中自动保存在那,大家所说的工具,宏都不知道在哪,请用图文,谢谢