Жестко зафиксировать пути к макросам.

Программирование на Visual Basic for Applications
sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Жестко зафиксировать пути к макросам.

Сообщение sonata » 02.04.2003 (Ср) 10:40

Вопрос о сохранении пути к макросам.
Есть файл. Лежит на сервере.
Путь: \\Serv_nt2\1\buh14\Банки\Банки.xls
Иногда приходиться сохранять файл локально:
Путь:C:\Windows....
В файле есть настраиваемые панели с кнопками и с макросами.
При сохранении файла в другое место: "Сохранить как:" естественно
пути переопределяются и заменяются новыми, а мне их нужно жестко
зафиксировать. Как это можно сделать? Если можно поподроьнее...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.04.2003 (Ср) 10:48

Объявляем в модуле класса документа событие Workbook_BeforeSave, и в оном присваиваем желаемой кнопке OnAction = YourStringConst
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 02.04.2003 (Ср) 12:32

Как правильнее так:

Application.CommandBars("Настраиваемая 1").Controls(1).OnAction = "'" + ThisWorkbook.FullName + "'!ВЛ19"

или так:

Application.CommandBars("Настраиваемая 1").Controls(1).OnAction = "'!\\Serv_nt2\1\buh14\Банки\Банки.xls!ВЛ19"

И как правильно расставить апострофы?Для чего они нужны?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 02.04.2003 (Ср) 12:38

Не апострофы, а кавычки ;)

Нужны они для того, чтобы компилятор интрепретировал то что между ними как строку ;)



А правильнее второй вариант, так как если путь надо прописывать жестко, то лучше его явно указать ;)

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 02.04.2003 (Ср) 13:16

Ругается при сохранении ...
Ошибка компиляции... :roll:
Sub Workbook_BeforeSave()

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 02.04.2003 (Ср) 13:21

А что именно за ошибка? Можно ли увидеть код в, так сказать целом виде? :?

sonata
Постоялец
Постоялец
 
Сообщения: 321
Зарегистрирован: 31.07.2002 (Ср) 13:18
Откуда: Russia

Сообщение sonata » 02.04.2003 (Ср) 15:13

Все как подсказывали, только я слегка сократила код, у меня этих макросов гораздо больше, но все они однотипные... :(
Sub Workbook_BeforeSave()

Application.CommandBars("Настраиваемая 1").Controls(1).OnAction = "'" + ThisWorkbook.FullName + "'!ВЛ19"
Application.CommandBars("Настраиваемая 1").Controls(1).OnAction = "'!\\Serv_nt2\1\buh14\Банки\Банки.xls!ВЛ19"
Application.CommandBars("Настраиваемая 1").Controls(2).OnAction = "'!\\Serv_nt2\1\buh14\Банки\Банки.xls!ГР12"
Application.CommandBars("Настраиваемая 1").Controls(3).OnAction = "'!\\Serv_nt2\1\buh14\Банки\Банки.xls!ГР16"

End Sub

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 02.04.2003 (Ср) 15:18

а где параметры передаваемые функции :?:
Код: Выделить всё
Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'твой код
End Sub


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

    TopList