![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 07.11.2008
Сообщений: 9
|
![]()
Может кто-то уже сталкивался с подобной проблемой.
Хочу чтоб при вводе телефонного номера в поле на форме, номер вводился по маске, например, ввожу 325689, и в этом поле введенные цифры группировались как 32-23-56. Искала информацию по этому поводу, но ничего путного не нашла. Поле для ввода тел. номера у меня на форме Text.box. Читала что маску можно организовать с помощью спец. объекта VBA в Excel - объект Masked Edit Control, только вот у себя в новом 2007 офисе его не могу найти, просмотрела весь список. Может это можно сделать и с простым полем? Очень хочеться сделать маску, вот только как ? Люди, помоги советом, буду признательна. |
![]() |
![]() |
#2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Вот один из способов (не лучший из возможных, но вдруг подойдёт):
Предполагается, что на форме присутствует текстбокс с именем TextBox1 Код:
cell.Value = Format(PhoneNumber, "##-##-##") |
![]() |
![]() |
#3 |
Регистрация: 07.11.2008
Сообщений: 9
|
![]()
Спасибо, вы мне очень помогли, первый код, что вы привели, подошел идеально, работает. А вот второй не работает.
и еще вопрос, может он покажется глупым ( я пока чайник), почему именно событие TextBox1_Change(), а не например, KeyPress? Еще один вопрос: при работе первого кода, как я уже говорила работает все хорошо, только вот, если в поле я захочу удалить номер и набрать другой, то удаляется только 2 последние цифры? Почему так? |
![]() |
![]() |
#4 | |||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Код:
Цитата:
Вообще, в этом коде ещё многое необходимо учесть - например, что б можно было вводить только цифры, и т.д. Это был всего лишь пример. Цитата:
У меня сколько надо, столько и удаляется. (проверял много раз - но у меня Excel 2003 rus) |
|||
![]() |
![]() |
#5 |
Регистрация: 07.11.2008
Сообщений: 9
|
![]()
спасибо за второй повторный присланный код, вот только в моем случае он скорее не подойдет, т.к. в моей программе данные сначала заносятся в форму, а из нее уже на лист.
Другой вопрос, тот код что первый, я его у себя реализовала. Для ввода 6-значного номера все хорошо. А как сделать маску тогда для 11-го номера. Ведь в поле может вводится номер не только 6-ный, но и номер моб. тел. Я вот пыталась что-то поправить в вышем коде, только вот не все корректно работает. Мне бы хотелось что было предусмотрено ввод цифр по маске для 6 цифр, 11 цифр и одномременно два номер с маской. Прикрепляю файл, если вас не затруднит можете там увидеть ваш код, может что подскажите и на этот счет? |
![]() |
![]() |
#6 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Цитата:
Мало ли что пользователю вздумается ввести... на все случаи жизни масок не предусмотришь ![]() Я бы оставил просто текстовое поле, а потом уже, при желании, можно разбить введённую строку на отдельные телефонные номера. Да и элемент управления Masked Edit Control в Вашем случае мало чем поможет - конечно, можно попробовать переключать различные маски в зависимости от содержимого поля, но это будет ненамного проще, чем в случае с Textbox-ом.
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
![]() Последний раз редактировалось EducatedFool; 07.11.2008 в 18:25. |
||
![]() |
![]() |
#7 |
Регистрация: 07.11.2008
Сообщений: 9
|
![]()
спасибо и за этот совет, нашла то что советовали, установила. Вот только почему-то объект не хочет добавляться на форму? Выдается ошибка, см. файл прикр. Почему?
![]() |
![]() |
![]() |
#8 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Для этого нажмите Пуск - Выполнить, введите строку regsvr32 MSMASK32.OCX и нажмите ОК. (файл должен находиться в папке C:\WINDOWS\system32\, иначе потребуется ввести полный путь к файлу, например, regsvr32 "C:\Documents and Settings\Администратор\Рабочий стол\MSMASK32.OCX") |
|
![]() |
![]() |
#9 |
Регистрация: 07.11.2008
Сообщений: 9
|
![]()
спасибо и за этот совет, все сделала как описано, выдалось сообщение что регистрация удачно завершена, вот только ситуация почему-то не поменялась, опять выдается эта же ошибка. Может для этого еще нужно пк перезакрузить?
|
![]() |
![]() |
#10 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Забыл, что одного файла недостаточно...
Извлеките из прикреплённого к сообщению архива файлы, и скопируйте их в папку C:\WINDOWS\system32\ После этого повторите процедуру регистрации. Перезагружать компьютер не требуется. |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
VBA Excel | Slicker | Помощь студентам | 4 | 04.11.2008 17:14 |
пользовательский формат или объединение содержимого | mr.beginner | Microsoft Office Excel | 3 | 08.07.2008 16:39 |
VBA Excel ComboBox | corsarlt | Microsoft Office Excel | 2 | 05.06.2008 23:50 |
Задать формат, числу в VBA | valerij | Microsoft Office Excel | 3 | 04.06.2008 10:58 |
VBA i Excel | corsarlt | Microsoft Office Excel | 3 | 03.04.2008 06:13 |