Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как заставить макрос работать только с активной книгой? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как заставить макрос работать только с активной книгой? (Макросы/Sub)
Как заставить макрос работать только с активной книгой?
KF Дата: Понедельник, 13.10.2014, 20:25 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте,
есть макрос, который запускает стандартную функцию в Excel: консолидация. Проблема состоит в том, что книгу, для которой создан макрос необходимо размножить для нескольких клиентов, но при изменении имени файла (сохранении под другим именем) , макрос продолжает ссылаться на исходник. Как заставить его работать с активным файлом?

"'F:\AD\ICMS\[Customer name first week-last week 2014.xlsm] - путь к исходному файлу, который необходимо заменить на активную книгу

DATA'!R5C7:R500C10 - название листа и диапазон откуда необходимо брать данные для консолидации (неизменен для всех клиентов)

Полный код ниже

[vba]
Код
Range("A1").Select
Selection.Consolidate Sources:= _
"'F:\AD\ICMS\[Customer name first week-last week 2014.xlsm]DATA'!R5C7:R500C10" _
, Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
Columns("A:D").Select
Selection.AutoFilter
Range("A2").Select
End Sub
[/vba]

Заранее спасибо.

С уважением Константин
 
Ответить
СообщениеЗдравствуйте,
есть макрос, который запускает стандартную функцию в Excel: консолидация. Проблема состоит в том, что книгу, для которой создан макрос необходимо размножить для нескольких клиентов, но при изменении имени файла (сохранении под другим именем) , макрос продолжает ссылаться на исходник. Как заставить его работать с активным файлом?

"'F:\AD\ICMS\[Customer name first week-last week 2014.xlsm] - путь к исходному файлу, который необходимо заменить на активную книгу

DATA'!R5C7:R500C10 - название листа и диапазон откуда необходимо брать данные для консолидации (неизменен для всех клиентов)

Полный код ниже

[vba]
Код
Range("A1").Select
Selection.Consolidate Sources:= _
"'F:\AD\ICMS\[Customer name first week-last week 2014.xlsm]DATA'!R5C7:R500C10" _
, Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
Columns("A:D").Select
Selection.AutoFilter
Range("A2").Select
End Sub
[/vba]

Заранее спасибо.

С уважением Константин

Автор - KF
Дата добавления - 13.10.2014 в 20:25
_Boroda_ Дата: Понедельник, 13.10.2014, 20:42 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
p_ = ThisWorkbook.Path & "\[" & ThisWorkbook.Name & "]"
[/vba]
Вернее, так
[vba]
Код
p="'" & ThisWorkbook.Path & "\[" & ThisWorkbook.Name & "]DATA'!R5C7:R500C10"
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
p_ = ThisWorkbook.Path & "\[" & ThisWorkbook.Name & "]"
[/vba]
Вернее, так
[vba]
Код
p="'" & ThisWorkbook.Path & "\[" & ThisWorkbook.Name & "]DATA'!R5C7:R500C10"
[/vba]

Автор - _Boroda_
Дата добавления - 13.10.2014 в 20:42
KF Дата: Понедельник, 13.10.2014, 20:52 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Не уверен,
заменил путь и название листа на p="'" & ThisWorkbook.Path & "\[" & ThisWorkbook.Name & "]DATA'!R5C7:R500C10",
выдало ошибку: Run-time error 1004 Неверная ссылка.

Но мог и заменить не правильно. Новую версию макроса выкладываю

[vba]
Код
Sub Consolidation_indirect()
'
' Consolidation_indirect Ìàêðîñ
'

'
Range("A1").Select
Selection.Consolidate Sources:= _
p = "'" & ThisWorkbook.Path & "\[" & ThisWorkbook.Name & "]DATA'!R5C7:R500C10" _
, Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
Columns("A:D").Select
Selection.AutoFilter
Range("A2").Select
End Sub
[/vba]
[moder]Пользуйтесь тегами оформления
Кнопки:
для формул - fx
для макросов - #
 
Ответить
СообщениеНе уверен,
заменил путь и название листа на p="'" & ThisWorkbook.Path & "\[" & ThisWorkbook.Name & "]DATA'!R5C7:R500C10",
выдало ошибку: Run-time error 1004 Неверная ссылка.

Но мог и заменить не правильно. Новую версию макроса выкладываю

[vba]
Код
Sub Consolidation_indirect()
'
' Consolidation_indirect Ìàêðîñ
'

'
Range("A1").Select
Selection.Consolidate Sources:= _
p = "'" & ThisWorkbook.Path & "\[" & ThisWorkbook.Name & "]DATA'!R5C7:R500C10" _
, Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
Columns("A:D").Select
Selection.AutoFilter
Range("A2").Select
End Sub
[/vba]
[moder]Пользуйтесь тегами оформления
Кнопки:
для формул - fx
для макросов - #

Автор - KF
Дата добавления - 13.10.2014 в 20:52
_Boroda_ Дата: Понедельник, 13.10.2014, 21:05 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS

А это Вы зачем туда засунули? Если пишете [vba]
Код
p="'" & ThisWorkbook.Path & "\[" & ThisWorkbook.Name & "]DATA'!R5C7:R500C10"
[/vba], то тогда ниже
[vba]
Код
Selection.Consolidate Sources:= p, Function ...
[/vba]
p - это переменная
или[vba]
Код
Selection.Consolidate Sources:= _
"'" & ThisWorkbook.Path & "\[" & ThisWorkbook.Name & "]DATA'!R5C7:R500C10" _
, Function ...
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
А это Вы зачем туда засунули? Если пишете [vba]
Код
p="'" & ThisWorkbook.Path & "\[" & ThisWorkbook.Name & "]DATA'!R5C7:R500C10"
[/vba], то тогда ниже
[vba]
Код
Selection.Consolidate Sources:= p, Function ...
[/vba]
p - это переменная
или[vba]
Код
Selection.Consolidate Sources:= _
"'" & ThisWorkbook.Path & "\[" & ThisWorkbook.Name & "]DATA'!R5C7:R500C10" _
, Function ...
[/vba]

Автор - _Boroda_
Дата добавления - 13.10.2014 в 21:05
KF Дата: Вторник, 14.10.2014, 12:02 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо огромное, так работает.
 
Ответить
СообщениеСпасибо огромное, так работает.

Автор - KF
Дата добавления - 14.10.2014 в 12:02
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как заставить макрос работать только с активной книгой? (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!