Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 04.12.2008, 18:31   #1
Gawwws
Пользователь
 
Регистрация: 18.10.2008
Сообщений: 65
Восклицание Как найти путь к файлу?

Как обратиться к файлу, который находится в той-же папке что и книга?
(Книга может быть в разных местах)
Gawwws вне форума
Старый 04.12.2008, 18:53   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

ActiveWorkbook.FullName
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 04.12.2008, 19:13   #3
Gawwws
Пользователь
 
Регистрация: 18.10.2008
Сообщений: 65
По умолчанию

Немного не то!!!

Показывает путь C:\Documents and Settings\Admin\Мои документы\Конструктор.xls,

А реальный C:\Конструктор.xls и надо без имени файла ("С:\")
Gawwws вне форума
Старый 04.12.2008, 19:51   #4
Gawwws
Пользователь
 
Регистрация: 18.10.2008
Сообщений: 65
По умолчанию

Перезапустил - работает!!!

Имя самого файла убрал так:

Код:
Private Function Spliting1(sFullPath As String)
Dim str1() As String
str1 = Split(sFullPath, "\")
Spliting1 = str1(UBound(str1))
End Function

Sub Кнопка12_Щелкнуть()
Dim sName As String, sName1 As String, sName2 As String, sName3 As String, sName4 As String
sName = ActiveWorkbook.FullName
sName1 = Spliting1(sName)
For i = 1 To Len(sName) - Len(sName1)
    sName3 = Mid(sName, i, 1)
    sName4 = sName4 & sName3
Next
MsgBox sName4
Stop
Но бывают проблемы с разными Excel-ями в частности с функцией Mid!

Можно по-другому???
Gawwws вне форума
Старый 04.12.2008, 20:06   #5
Gawwws
Пользователь
 
Регистрация: 18.10.2008
Сообщений: 65
По умолчанию

Упростил:

Код:
Sub Кнопка12_Щелкнуть()
Dim sName As String, sName1 As String, sName2 As String, sName3 As String, sName4 As String
sName = ActiveWorkbook.FullName
sName1 = ActiveWorkbook.Name
For i = 1 To Len(sName) - Len(sName1)
    sName3 = Mid(sName, i, 1)
    sName4 = sName4 & sName3
Next
MsgBox sName4
Stop
Но Mid(sName, i, 1) меня беспокоит!!
Gawwws вне форума
Старый 05.12.2008, 05:04   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Упростил:
Проще не бывает


Для получения пути файла есть свойство книги Path
Код:
Sub test333()
    MsgBox ActiveWorkbook.Path
End Sub
Одна проблема - последним символом в этом пути может быть разделитель "\" (если файл лежит в корневом каталоге на диске).
Во всех остальных случаях этот разделитель надо дописывать самому.


Есть и другой способ - всегда возвращающий путь файла с разделителем на конце:
Код:
Sub test33()
    Path = Replace(ActiveWorkbook.FullName, ActiveWorkbook.Name, "")
    MsgBox Path
End Sub
EducatedFool вне форума
Старый 05.12.2008, 14:01   #7
Gawwws
Пользователь
 
Регистрация: 18.10.2008
Сообщений: 65
По умолчанию

Спасибо!!!

Я сделал так:

Код:
sName = ActiveWorkbook.Path
If Len(sName) <> 3 Then sName = sName & "\"
MsgBox sName
Gawwws вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить путь к файлу Manya Общие вопросы Delphi 5 22.05.2012 16:12
Как зная путь к файлу показать стандартное конт. меню hoza_syl Общие вопросы Delphi 6 11.07.2008 14:54
Как узнать полный путь к *.ехе файлу SeЯgey Помощь студентам 3 27.05.2008 09:46
Как вытащить путь к файлу UnD)eaD)Snake Общие вопросы Delphi 13 20.08.2007 22:09
Как указать путь компилируемуму exe файлу shurik_7866 Общие вопросы Delphi 2 18.07.2007 23:24