如何获取VBA宏所在工作簿的源文件路径?
获取存储VBA宏的工作簿路径的方法
当然可以,核心是利用VBA的ThisWorkbook对象定位宏所在的模板文件,和当前活动工作簿、其他打开的文件都无关。
具体实现代码
' 获取宏所在工作簿的完整路径(包含文件名) Sub GetMacroWorkbookFullPath() Dim fullPath As String fullPath = ThisWorkbook.FullName MsgBox "宏模板文件的完整路径:" & fullPath End Sub ' 仅获取宏所在工作簿的文件夹路径(不含文件名) Sub GetMacroWorkbookFolder() Dim folderPath As String folderPath = ThisWorkbook.Path ' 处理文件未保存的情况 If folderPath = "" Then MsgBox "宏模板文件尚未保存,请先保存文件!" Else MsgBox "宏模板文件所在文件夹:" & folderPath End If End Sub
原理说明
ThisWorkbook是VBA内置对象,它始终指向包含当前正在运行代码的工作簿——也就是你存储所有VBA宏的模板文件。不管你用哪个工作簿触发宏,也不管此时打开了多少其他Excel文件,这个对象的指向都不会改变,因此能精准获取到宏模板的路径。
注意事项
- 如果宏模板文件从未保存过,
ThisWorkbook.Path会返回空字符串,所以要确保宏模板文件是已保存状态,否则无法获取有效路径。
内容的提问来源于stack exchange,提问作者Vincent Guttmann
相关产品推荐
相关产品推荐

