|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.09.2010, 15:43 | #1 |
Пользователь
Регистрация: 18.12.2007
Сообщений: 40
|
VBA - выделение группы листов
В книге три листа: "010910р", "020910р", "030910р".
И есть два варианта. Первый. Работает. Код:
В книге те же три листа: "010910р", "020910р", "030910р". Код:
В чем дело, граждане?! Разве это не одно и то же? Спасибо. |
23.09.2010, 15:54 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Код:
Может, есть решение попроще... |
23.09.2010, 16:12 | #3 | |
Пользователь
Регистрация: 18.12.2007
Сообщений: 40
|
Цитата:
И оба, естественно, работают. Но все же, извините за занудство, в чем моя ошибка со вторым вариантом? А про выделение группой - наверное, можно придумать без него. как это сделать, - я не знаю. С благодарностью приму ваш совет. |
|
23.09.2010, 16:19 | #4 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Вот если бы вы сказали, что пытаетесь сделать - глядишь, и посоветовал бы что-нибудь. Цитата:
Я не смог разобраться - поэтому переписал код заполнения массива "с нуля" |
||
23.09.2010, 16:40 | #5 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
у Вас 3 листа, а в массиве GroupName(3) - 4 элемента. GroupName(0) у Вас не заполнен - там и ошибка
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
23.09.2010, 16:56 | #6 | |
Пользователь
Регистрация: 18.12.2007
Сообщений: 40
|
Цитата:
Из книги с расчетами за текущий месяц надо сделать книгу за следующий. Для этого все листы к расчетами за каждый день, сгруппировав, уберем в новую книгу-архив. Дальше неинтересно, пока не возникает потребность вернуть из архива рабочие листы за прошлый месяц для пересчета. На каждом листе есть кнопка с макросом, лежащим в родной расчетной книге. И на листе, перемещенном туда-обратно, ссылка на макрос, присвоенный кнопке, почему-то указывает на "архив", а не на исходную, родную для него расчетную книгу. А в "архиве" его, естественно, нет. Вот и появилась идея прописать механизм, который при программном перемещении группы листов в "архив"/из "архива" будет контролировать-восстанавливать ссылки на макросы. Это несложно, на самом деле. Тем более, что Вы мне здорово помогли. |
|
23.09.2010, 17:05 | #7 | |
Пользователь
Регистрация: 18.12.2007
Сообщений: 40
|
Цитата:
Код:
Обратите внимание - в первой итерации имя ПЕРВОГО листа присваивается НУЛЕВОМУ элементу массива Groupname. И отладчик показывает, что в массиве - ТРИ элемента (0-ой, 1-й и 2-й), и что пустых нет. |
|
23.09.2010, 17:10 | #8 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
согласен, погарячился, был не прав.
но теперь я не знаю где ошибка и искать Вам ее самому...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
23.09.2010, 19:03 | #9 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Первая ошибка в том, что надо сначала увеличивать размерность массива, и лишь потом добавлять элементы.
Таким образом, надо поменять местами 2 строки: Код:
Цитата:
Отсюда - пустые элементы. Даже если убрать лишнюю строку кода ReDim Preserve GroupName(twhb - 1), это мало что изменит. (при нахождении следующего подходящего листа размерность массива увеличится не на единицу - а до индекса текущего листа. Убедитесь сами при помощи такого кода: Код:
вместо ReDim Preserve GroupName(twhb) надо поставить ReDim Preserve GroupName(twhb - 1)
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 23.09.2010 в 19:07. |
|
24.09.2010, 09:25 | #10 |
Пользователь
Регистрация: 18.12.2007
Сообщений: 40
|
Спасибо за разбор полетов, уважаемый EducatedFool. Над логикой мне еще работать и работать.
Надеюсь когда-нибудь Вам помогут также быстро и красиво, как Вы помогли мне. С искренним к Вам Уважением. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
выделение ячеек в таблице word из VBA excel | Святой Дьявол | Microsoft Office Excel | 5 | 12.11.2022 00:57 |
выделение нескольких ячеек в VBA | tohdom | Microsoft Office Excel | 22 | 27.06.2012 05:48 |
Строки(группы букв и группы знаков), Pascal | Mrs Smith | Помощь студентам | 1 | 10.12.2009 16:31 |
Выделение группы ячеек | t0xa | Microsoft Office Excel | 1 | 19.09.2009 18:21 |
выделение листов по условию | Bronyk | Microsoft Office Excel | 5 | 11.03.2008 19:40 |