【问题标题】: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文件相同的目录中?

【问题讨论】:

    标签: excel save


    【解决方案1】:
    sPath = ThisWorkbook.Path
    

    sPath 是末尾没有分隔符的路径(至少在 Windows 上),因此您必须在脚本中添加一个分隔符。在您的情况下,文件将保存到/Applications/WORDNET,名称为"PROJECTS" & NewName

    Unix:

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

    窗户:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-27
      • 1970-01-01
      • 2018-09-15
      • 2021-10-01
      • 2015-05-17
      相关资源
      最近更新 更多