Как получить путь к текущему листу в VBA?

97

Я написал макрос как add = in. И мне нужно получить путь к текущему рабочему листу, на котором он выполняется. Как мне это сделать? Как получить путь к файлу (только каталог)?

  • 0
    Вы имеете в виду, что по заданному листу вы хотите знать папку, в которой хранится родительская книга?
Теги:
excel-vba
excel

3 ответа

175
Лучший ответ

Используйте Application.ActiveWorkbook.Path только для самого пути (без имени книги) или Application.ActiveWorkbook.FullName для пути с именем книги.

  • 12
    Activeworkbook зависит от того, какая книга активна. ИСПОЛЬЗУЙТЕ Thisworkbook.path
  • 5
    Конечно, оба полезны в разных ситуациях. Я взял первоначальный вопрос, чтобы обозначить, что макрос находится в книге надстроек (это будет ThisWorkbook.path), но ему нужно было запускать код для других книг по мере необходимости для пользователя (который будет ActiveWorkbook.path).
Показать ещё 3 комментария
27

Всегда приятно иметь:

Dim myPath As String     
Dim folderPath As String 

folderPath = Application.ActiveWorkbook.Path    
myPath = Application.ActiveWorkbook.FullName
19

Если вы хотите получить путь к книге, из которой выполняется макрос, используйте Application.ThisWorkbook.Path.
Application.ActiveWorkbook.Path может иногда приводить к неожиданным результатам (например, если ваш макрос переключается между несколькими книгами).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню