Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2013 - Проверка на правильность написанных данных

Ответить
Настройки темы
2013 - Проверка на правильность написанных данных

Старожил


Сообщения: 241
Благодарности: 1

Профиль | Отправить PM | Цитировать


Всем привет. Можете помочь с макросом, который будет проверять каждую ячейку столбца и в том случае, если в тексте ячейки присутствует ошибка в проставлении скобок, останавливать работу макроса и выводить сообщение, в каком месте листа макрос обнаружил ошибку. Например, запись «Текст(текст)» будет правильно, а такая – «Текст)текст(» или «((( )) () ))» будут неправильными и для них следует вывести сообщение об ошибке.

Отправлено: 17:55, 13-12-2016

 

Старожил


Сообщения: 241
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата Iska:
искомый лист == активный лист — согласны? »
Да.
А можно тогда искомый столбец == активный столбец?

Отправлено: 21:05, 18-12-2016 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Invincible:
А можно тогда искомый столбец == активный столбец? »
Можно. Можно даже так: есть выделение на активном листе — проверяем только выделение, нет выделения (активна/выделена только одна ячейка) — проверяем заполненную часть столбца, содержащего эту ячейку. Поведение выделения после обработки — как в последнем макросе. Устроит?

Отправлено: 21:40, 18-12-2016 | #12


Старожил


Сообщения: 241
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата Iska:
проверяем заполненную часть столбца, содержащего эту ячейку. »
Если у меня курсор стоит на ячейке B2, то проверка будет проходить с B2 и до конца столбца B?

Отправлено: 01:00, 19-12-2016 | #13


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать



Цитата Invincible:
Если у меня курсор стоит на ячейке B2, то проверка будет проходить с B2 и до конца столбца B? »
Нет. По дипазону, образованному пересечением заполненного диапазона листа (.UsedRange) и столбца B. Если выделено больше одной ячейки — только в пределах этого выделения.

Попробуйте так: CheckRangeForParentheses.7z (листы диаграммы, диалога были добавлены намеренно для иллюстрации поведения, никакой значимой ценности они не несут).

Отправлено: 01:26, 19-12-2016 | #14


Старожил


Сообщения: 241
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата Iska:
Можно. Можно даже так: есть выделение на активном листе — проверяем только выделение, нет выделения (активна/выделена только одна ячейка) — проверяем заполненную часть столбца, содержащего эту ячейку. Поведение выделения после обработки — как в последнем макросе. Устроит? »
То есть сейчас осуществляется поиск с активного столбца?

Отправлено: 00:53, 21-12-2016 | #15


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Invincible:
…осуществляется поиск с активного столбца? »
Не понял.

Отправлено: 01:28, 21-12-2016 | #16


Старожил


Сообщения: 241
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата Iska:
Не понял. »
На котором курсор стоит, я так понял из Вашей рабочей книги

Отправлено: 01:30, 21-12-2016 | #17


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Поиск в этом случае осуществляется в диапазоне, представляющем собой пересечение (Intersect()) Используемого диапазона (.UsedRange) активного Рабочего листа (.ActiveSheet) и столбца (.Columns.Item()), в котором находится активная ячейка (Selection.Column). В целом определяется вот здесь:
Код: Выделить весь код
            With .ActiveSheet ' На активном Рабочем листе
                If Selection.Count = 1 Then ' Если в выделении присутствует одна ячейка…
                    ' …то искомый диапазон находим пересечением Используемого диапазона
                    ' активного Рабочего листа и столбца, в котором находится активная ячейка.
                    Set objCheckRange = Intersect(.UsedRange, .Columns.Item(Selection.Column)) 
                Else
                    ' …иначе — ищем в самом выделении.
                    Set objCheckRange = Selection
                End If
                
                If Not objCheckRange Is Nothing Then ' Если искомый диапазон не пуст…

Отправлено: 02:39, 21-12-2016 | #18


Старожил


Сообщения: 241
Благодарности: 1

Профиль | Отправить PM | Цитировать


Iska, Но если выделена одна ячейка а поиск осуществляется по всему столбцу?

Отправлено: 07:22, 21-12-2016 | #19


Старожил


Сообщения: 241
Благодарности: 1

Профиль | Отправить PM | Цитировать


Iska, Можно еще последнее попросить, чтобы выводилось сообщение с адресом где обнаружилось ошибка. К примеру находится ошибка в ячейке A2, после нахождения ошибки выводится MsgBox с сообщением "Обнаружена ошибка в ячейке A2", потом например ошибка в ячейке A10, выводится еще один MsgBox с сообщением "Обнаружена ошибка в ячейке A10", и в самом конце уже MsgBox с сообщением "Всего найдено 2 ошибки".

Отправлено: 07:48, 21-12-2016 | #20



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2013 - Проверка на правильность написанных данных

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Проверка данных пользователя (PHP + JavaScript или Ajax) darksmoke Вебмастеру 2 15-06-2009 17:28
[решено] Внутренняя связь между двумя "файлами" написанных на AutoIT FlatX007 AutoIt 11 16-05-2009 20:58
правильность конфигурации belomor3000 Выбор отдельных компонентов компьютера и конфигурации в целом 5 15-09-2008 11:11
Две ХР на одной машине. Правильность установки ags Microsoft Windows 2000/XP 1 15-03-2006 16:14
Проверка данных PhoeniX BoG Вебмастеру 3 06-04-2004 22:24




 
Переход