|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.05.2015, 21:40 | #1 |
Регистрация: 22.11.2011
Сообщений: 3
|
Макров не срабатывает на активном листе
Подскажите, почему макрос не срабатывает на активном листе "XXX"?
Sub Test() Sheets("Лист1").Copy After:=Sheets(1) 'копирую лист Sheets("Лист1 (2)").Name = "XXX" 'переименовываю его в ХХХ Sheets("XXX").Activate 'вроде как делаю активным... 'но почему приведённый ниже код срабатывает на "Лист1", а не на активном листе??? Set ColValue = Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlValues, _ LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious) c = ColValue.Column Set MyRange = Range([D1], Cells(3, c)) MyRange.Copy End Sub Последний раз редактировалось PreoLo; 20.05.2015 в 22:02. |
20.05.2015, 21:58 | #2 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Потому что макрос в листе. Угадал?
webmoney: E265281470651 Z422237915069 R418926282008
|
20.05.2015, 22:04 | #3 |
Регистрация: 22.11.2011
Сообщений: 3
|
|
20.05.2015, 22:06 | #4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Положить его туда, где ему и место - в стандартный модуль.
webmoney: E265281470651 Z422237915069 R418926282008
|
21.05.2015, 00:20 | #5 |
Регистрация: 22.11.2011
Сообщений: 3
|
Спасибо за подсказку, которая была в вашем вопросе... Подтолкнули в нужном направлении!
Изменил макрос активного листа, прописав обращение к макросу листа другой книги... без модуля... Всё прекрасно отработало... Последний раз редактировалось PreoLo; 21.05.2015 в 00:46. |
21.05.2015, 01:06 | #6 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
PreoLo,
1. откройте новую книгу, на первом листе в А1 впишите А1 Лист1 2. на втором листе в А1 впишите А1 Лист2 3. откройте редактор VBE (Alt+F11) 4. вставьте модуль в проект 5. скопируйте в модуль1 этот Код:
выполните по очереди макросы. макросы одинаковые, делают одно и тоже, а содержание msgbox-ов разное. заметили? потому что неяное обращение к cells(1,1) в одном случае зависит от того, какой лист активен, а в другом - в каком контексте происходит обращение к cells(1,1) Hugo121 намекал именно на это
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
Последний раз редактировалось IgorGO; 21.05.2015 в 09:22. |
21.05.2015, 08:57 | #7 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Я намекал на то, что код листа
Код:
А код модуля будет работать как и задумано. То, что активация листов практически никогда не нужна - это другое дело.
webmoney: E265281470651 Z422237915069 R418926282008
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа на одном листе с данными из LISTBOX, данные на другом листе | konstantin1990 | Microsoft Office Excel | 3 | 22.07.2013 15:15 |
как выключить в активном окне звук delphi | KWN, lnc | Мультимедиа в Delphi | 29 | 22.01.2012 21:53 |
Эмуляция нажатия клавиши в любом активном приложении | Marsel737 | Общие вопросы Delphi | 1 | 19.03.2010 14:44 |
ячейка на одном листе, в которую необходимо подставлять данные из столбца, находящегося на другом листе | Ирина Водолагина | Microsoft Office Excel | 4 | 04.03.2009 23:38 |
Поиск в реестре* не активном | nivea | Помощь студентам | 3 | 14.01.2008 17:42 |