EXCEL & макрос. Помогите пожалуйста.

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
zarych
Сообщения: 2
Зарегистрирован: 22 дек 2009, 17:18

Добрый день.
Очень нужна, Ваша помощь, уважаемые мастера своего дела. Сам я в Excel не давно, да и то, только из-за моего ВУЗа.
Суть вопроса.
У меня сделаны несколько .xls в одной папке. Они между собой связаны некоторыми макросами. Все работает нормально. Но если переименовать эту папку, то макросы с .xls на другой .xls перестают работать. Можно, переписать новые пути заново, но мне нужно, что бы хоть папка тысячу раз переименовалась, макросы все равно работали.
Очень надеюсь на Вашу помощь. Посоветуйте что нибудь. :confused:
Аватара пользователя
EducatedFool
Сообщения: 197
Зарегистрирован: 06 апр 2008, 14:03
Откуда: Россия, Урал
Контактная информация:

А что тут можно посоветовать...
Выкладывайте код, поглядим.

Да Вы и сами должны были заметить, что в коде прописаны абсолютные пути к файлам.
Решается проблема просто - заменой абсолютных путей на относительные:

Код: Выделить всё

[color=darkblue]Sub[/color] Макрос1()
    [color=green]' вместо такого:[/color]
    ИмяФайла = "C:\Documents and Settings\Игорь\Рабочий стол\1.xls"
    [color=green]' пишем что-то вроде этого:[/color]
    ИмяФайла = ThisWorkbook.Path & "\1.xls"
[color=darkblue]End[/color] [color=darkblue]Sub[/color]
Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/

Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
zarych
Сообщения: 2
Зарегистрирован: 22 дек 2009, 17:18

Огрооомнооое Спасибо!!!
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
zarych писал(а):Огрооомнооое Спасибо!!!
Ещи один момент. Когда Excel развернут на полный экран, то выдают ошибки макросы... посмотрите:
Sub Ñ÷åò÷èê_çàêàçîâ()
'
' Ñ÷åò÷èê_çàêàçîâ Ìàêðîñ
' Ìàêðîñ çàïèñàí 28.09.2009 (Customer)
'

'
Workbooks.Open (ThisWorkbook.Path & "\ñ÷åò÷èê.xls"), UpdateLinks:=True, ReadOnly:=False
Application.Left = -2
Application.Top = -3

Windows("Ñ÷åò÷èê.xls").Activate
Application.Left = 157
Application.Top = 99.25
Range("A1").Select
Range("A1").Value = Range("A1").Value + 1
n = Range("A1").Value
ActiveWorkbook.Save
Windows("Ìàãàçèí.xls").Activate
Application.Left = 265
Application.Top = 112.75
Sheets("Ðåãèñòðàöèÿ").Select
Range("E22").Select
Range("E22").Value = n
Sheets("Ðåãèñòðàöèÿ").Select
ActiveWorkbook.Save
Windows("Ìàãàçèí.xls").Activate

End Sub

на строчках выделенным жирным. иероглифы русские буквы...
может есть ответ и на этот вопрос?
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
zarych писал(а):Огрооомнооое Спасибо!!!
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------


Ещи один момент. Когда Excel развернут на полный экран, то выдают ошибки макросы... посмотрите:
Sub Ñ÷åò÷èê_çàêàçîâ()
'
' Ñ÷åò÷èê_çàêàçîâ Ìàêðîñ
' Ìàêðîñ çàïèñàí 28.09.2009 (Customer)
'

'
Workbooks.Open (ThisWorkbook.Path & "\ñ÷åò÷èê.xls"), UpdateLinks:=True, ReadOnly:=False
Application.Left = -2
Application.Top = -3

Windows("Ñ÷åò÷èê.xls").Activate
Application.Left = 157
Application.Top = 99.25
Range("A1").Select
Range("A1").Value = Range("A1").Value + 1
n = Range("A1").Value
ActiveWorkbook.Save
Windows("Ìàãàçèí.xls").Activate
Application.Left = 265
Application.Top = 112.75
Sheets("Ðåãèñòðàöèÿ").Select
Range("E22").Select
Range("E22").Value = n
Sheets("Ðåãèñòðàöèÿ").Select
ActiveWorkbook.Save
Windows("Ìàãàçèí.xls").Activate

End Sub

на строчках выделенным жирным. иероглифы русские буквы...
может есть ответ и на этот вопрос?
все. всем спасибо. все решил.
тему можно закрыть.
Ответить