我编写了一个宏作为插件,需要获取正在执行的工作表的路径。我该如何做?我该如何获取文件路径(仅目录)?
我编写了一个作为插件的宏,需要获取当前正在执行的工作表的路径。我该如何做?如何获取文件路径(只需目录)?
我编写了一个作为插件的宏,需要获取当前正在执行的工作表的路径。我该如何做?如何获取文件路径(只需目录)?
使用Application.ActiveWorkbook.Path
可以获取工作簿的路径(不包含工作簿名称),使用Application.ActiveWorkbook.FullName
可以获取工作簿路径和名称。
ActiveWorkbook
。 - BradCExcel.ActiveWorkbook.Path
才会起作用。如果文件从未保存过,则 Excel.ActiveWorkbook.FullName
仅返回文件名。建议检查工作簿是否保存过。 - ChrisB始终有益:
Dim myPath As String
Dim folderPath As String
folderPath = Application.ActiveWorkbook.Path
myPath = Application.ActiveWorkbook.FullName
如果您想获取宏所在工作簿的路径 - 使用
Application.ThisWorkbook.Path
Application.ActiveWorkbook.Path
有时会产生意外的结果(例如,如果您的宏在多个工作簿之间切换)。
最快的方法
path = ThisWorkbook.Path & "\"
Dim sRowPath As String
Dim sLocalPath As String
Dim iFindhttp As Integer
sRowPath = Application.ActiveWorkbook.Path
If LCase(Left(sRowPath, 4)) = "http" Then
Dim fso As New FileSystemObject
sLocalPath = fso.GetAbsolutePathName(sRowPath)
iFindhttp = InStr(LCase(sLocalPath), "\http")
sLocalPath = Left(sLocalPath, iFindhttp - 1)
Set fso = Nothing
Else
sLocalPath = sRowPath
End If
GetLocalPath = sLocalPath
结束函数