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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 15.01.2009, 06:51   #1
sivsn
 
Регистрация: 07.05.2008
Сообщений: 4
По умолчанию ThisWorkbook.Path в VBA Excel

Следующий код ( в контексте ThisWorkbook.Path) работает идеально, если книга содержащая макрос, открыта в приложении Excel первой

Код:
Public CHIR As String
Private Sub Auto_open()
Application.ScreenUpdating = False
Workbooks.Open Filename:=ThisWorkbook.Path + "\" + "данные.xls"
With Workbooks("данные.xls")
  CHIR = .Worksheets("Лист1").Cells(1, 1).Value
End With
Workbooks("данные.xls").Close
EndSub
Но если пользователь достаточно долго работал в Excel и уже открыл несколько книг то ThisWorkbook.Path в окне отладки может содержать путь к одной из ранее открытых книг. Книга, содержащая макрос, размещена на сетевом ресурсе и запускается с ярлыка в каталоге пользователя.
Пришлось исправить след образом

Код:
Const CHIR_LI As String = "\\SERVER\PAPKA"  
Public CHIR As String
Private Sub Auto_open()
Application.ScreenUpdating = False
Workbooks.Open Filename:=CHIR_LI + "\" + "данные.xls"
With Workbooks("данные.xls")
  CHIR = .Worksheets("Лист1").Cells(1, 1).Value
End With
Workbooks("данные.xls").Close
EndSub
М б кто-нибудь что-нибудь посоветует? М б можно каким-то образом прочитать параметр Рабочая папка из свойств ярлыка с которого запускается книга, содержащая этот макрос?
sivsn вне форума
Старый 15.01.2009, 07:04   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Что-то я не совсем понял суть вопроса. ThisWorkbook.Path - это однозначно путь к книге, содержащей выполняемый макрос, не зависимо от того, сколько книг открыто, в каком порядке они открывались и какая книга активна.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 15.01.2009, 07:23   #3
sivsn
 
Регистрация: 07.05.2008
Сообщений: 4
По умолчанию

Я тоже так думала Но дело в том, что макрос вылетает по ошибке и пути к файлу "данные.xls" мне Excel рисует всякие разные. У меня на компьютере, как-то даже был путь к файлу с которым я работала полчаса назад и уже закрыла, но после этого не выгружала Application Excel. В отладчике на компьютере пользователя эта переменная при аварийном завершении макроса содержит путь к ярлыку, которым открывается эта книга на компьтере пользователя ( Ярлык в качестве программы имеет имя книги с полным путём к ней В качестве параметра "Рабочая папка" - папку на сервере, где эта книга расположена).
sivsn вне форума
Старый 15.01.2009, 07:42   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Ну, можно еще попробовать так:
Из Вашего кода видно, что по событию открытия книги запускается макрос, который должен открыть файл по тому же пути. Т.к. при открытии файла он безусловно становится активным, то попробуйте ThisWorkbook.Path заменить на ActiveWorkbook.Path
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 15.01.2009, 08:23   #5
sivsn
 
Регистрация: 07.05.2008
Сообщений: 4
По умолчанию

Спасибо большое! Пробовала! Вроде получалось, но потом похоже сама запуталась в своих книгах. Попоробую еще раз корректно на досуге!
sivsn вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Excel VBA fidot Microsoft Office Excel 1 28.12.2008 19:20
VBA Excel Slicker Помощь студентам 4 04.11.2008 17:14
VBA Excel ComboBox corsarlt Microsoft Office Excel 2 05.06.2008 23:50
VBA i Excel corsarlt Microsoft Office Excel 3 03.04.2008 06:13
макрос VBA Excel Bor Microsoft Office Excel 5 25.01.2008 12:20