使用VBA将Excel工作表保存在当前目录中

我在Excel中创build了一个工作表。 我想将它保存在当前目录中,但不能保存在绝对path中,那么在其他地方执行时,就不会有问题了。

有人可以帮忙吗?

我不清楚你的情况需要什么,但以下可能会让你开始。 这里的关键是使用ThisWorkbook.Path来获取相对的文件path:

 Sub SaveToRelativePath() Dim relativePath As String relativePath = ThisWorkbook.Path & "\" & ActiveWorkbook.Name ActiveWorkbook.SaveAs Filename:=relativePath End Sub 

VBA有一个CurDir关键字,将返回存储在Excel中的“当前目录”。 我不确定所有影响当前目录的事情,但绝对打开或保存工作簿将改变它。

 MyWorkbook.SaveAs CurDir & Application.PathSeparator & "MySavedWorkbook.xls" 

这假定你想保存的工作表从来没有被保存过,你想在代码中定义文件名。

如果path被忽略,文件将被自动保存在当前目录中。 尝试这样的事情:

ActiveWorkbook.SaveAs "Filename.xslx"

更进一步,要将文件保存到相对目录,可以使用replacefunction。 假设您将工作簿保存在:c:\ property \ california \ sacramento \ workbook.xlsx中,使用它将该属性移动到berkley:

 workBookPath = Replace(ActiveWorkBook.path, "sacramento", "berkley") myWorkbook.SaveAs(workBookPath & "\" & "newFileName.xlsx" 

只有当您的文件结构包含用于replace的文本的一个实例时才有效。 因人而异。