Как получить имя/путь файла excel в VBA

Скажем, я пишу VBA внутри своего excel файла sample.xls. Теперь я хочу получить полный путь sample.xls в моем VBA. Как это сделать?

4 ответа

Если вы имеете в виду VBA, то вы можете использовать FullName, например:

strFileFullName = ActiveWorkbook.FullName


strScriptFullname = WScript.ScriptFullName 
 strScriptPath = Left(strScriptFullname, InStrRev(strScriptFullname,"\"))


Это простая альтернатива, которая дает все ответы: полное имя, путь, имя файла.

Dim FilePath, FileOnly, PathOnly As String
FilePath = ThisWorkbook.FullName
FileOnly = ThisWorkbook.Name
PathOnly = Left(FilePath, Len(FilePath) - Len(FileOnly))


ActiveWorkbook.FullName было бы лучше, я думаю, если у вас есть макрос VBA, хранящийся в другой книге Excel, но вы хотите получить информацию о Excel, который вы редактируете, а не о том, где находится макрос.

Если они находятся в одном файле, то это не имеет значения, но если они находятся в разных файлах и вам нужен файл, где находятся данные, а не где находится макрос, то ActiveWorkbook - это тот, потому что он имеет дело с обоими сценариями.

licensed under cc by-sa 3.0 with attribution.