![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 30.07.2008
Сообщений: 125
|
![]()
Есть файлик со списком данных.
Есть макрос который отмечает галочкой строку. Нужно создать новый лист, и переместить туда все отмеченные галочкой строки. |
![]() |
![]() |
#2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Посмотрите вложение. Запустите макрос "Main".
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
#3 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
А вот более красивое решение Вашей задачи. Без цикла перебора строк и без поиска.
Запустите макрос "Main".
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 06.03.2008
Сообщений: 352
|
![]()
SAS888, Вам привет от Билла Гейтса!
Код:
Но выделение почему-то заканчивается на строке 61812 (это нижний край UsedRange). P.S. Всё же я бы предпочёл (насколько я понял, ячейки колонки A используются как логические переменные) что-то вроде Код:
![]() Ну и, надеюсь, Rom1k06 не забудет восстановить значения Application.ScreenUpdating и Application.DisplayAlerts. Последний раз редактировалось дмидми; 31.07.2008 в 08:49. Причина: Нет мук страшнее муки слова! © |
![]() |
![]() |
#5 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
1. Метод ColumnDifferences работает в диапазоне UsedRange. Вы, наверное, обратили внимание, что файл автора очень много "весит"? 61812 это и есть последняя строка используемого диапазона. В следубщем файле исправлено (обратите внимание на его размер).
2. Изменил код обработки события Worksheet_SelectionChange. Упростил и убрал обработку Double_Click. 3. По поводу добавления Application.EnableEvents - полностью согласен (добавлено). 4. Что по поводу Application.ScreenUpdating и Application.DisplayAlerts, то значение True этих функций восстанавливается по умолчанию после окончания выполнения процедуры (так же как и On Error GoTo 0). В отличии от них, Application.EnableEvents остается как есть. P.S. Просто изначально я не стал вмешиваться в то, что автор уже наработал. Посмотрите вложение. Считаю, что вполне приемлемо.
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
#6 | |||
Форумчанин
Регистрация: 06.03.2008
Сообщений: 352
|
![]()
Это документировано? В хэлпе, во всяком случае, такого указания нет.
Цитата:
Цитата:
Цитата:
P.S. Я всегда исхожу из того, что "лучше перебдеть...", и по возможности явно восстанавливаю измененные настройки. P.P.S. А Worksheet_BeforeDoubleClick-то за что убили? Последний раз редактировалось дмидми; 31.07.2008 в 09:57. |
|||
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 30.07.2008
Сообщений: 125
|
![]()
Программа получилась просто идеальная
Спасибо всем кто оказал содействие! Только мне неочень понятно что делает эта функция? Target = IIf(Target = "", "a", "") - я так пологаю что она при нажатии если пустая то "a" если "a" уже есть то пустая?.. Я понял это так . |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Rom1k06
Абсолютно верно. дмидми Цитата:
Скорее всего автор ввел обработку этого события для того, что если мы выделяем ячейку (ставим "птичку"), то как потом ее убрать? Ведь ячейка остается выделена. В измененном мной коде добавлен выбор ячейки рядом. Это позволяет повторным выделением снять "птичку".
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 31.07.2008 в 10:44. |
|
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 06.03.2008
Сообщений: 352
|
![]()
А вот "достаточно" не бывает никогда!
![]() Что (навскидку) я добавил бы, кабы не лень: 1) отсутствие реакции на вход в 1-ю колонку (и перемещение в ней) при помощи не мышки, а клавиатуры; 2) установку/снятие птицы по нажатию клавиши пробела (стандартная возможность в чекбоксах); И обязательно убрал бы список из первых двух (скрытых) строк на другой лист - а лучше задавал бы его в "Проверке..." непосредственно, а не ссылкой на диапазон. И поименовал бы шапку таблицы, чтобы не использовать в коде константы номеров строк листа. |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 30.07.2008
Сообщений: 125
|
![]()
Если не трудно то как убрать список и прописать его непосредственно в проверке.
Я в проверке делаю список и источник. А как без источника? С этия согласен что будет удобнее. |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Переход на новую строку | delphin100 | Общие вопросы Delphi | 9 | 31.05.2012 04:52 |
Перенести слова из массива в строки | Xardas | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 04.05.2008 12:34 |
Microsoft показала новую OC Singularity | merax | Свободное общение | 11 | 14.03.2008 19:31 |
Оцените новую версию | UnD)eaD)Snake | Софт | 4 | 23.08.2007 10:15 |