Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2022, 17:33   #1
DMITRIY_78
Форумчанин
 
Регистрация: 11.12.2018
Сообщений: 202
По умолчанию проверить длинну текста в активной ячйке

Что то у меня с проверкой текста тяжеловато! Ребята подскажите где что не так я делаю:
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
 With ActiveCell
        Select Case Len(.Text)
            Case 1
            'После ввода первого знака добавляем перед ним код страны и скобку
            .Text = "+7(" & .Text
            Case 4
            'После ввода шестого знака добавляем в конце скобку
            .Text = .Text & ") "
            Case 9, 12
            'После ввода десятого и тринадцатого знака добавляем в конце дефис
            .Text = .Text & "-"
            Case 16
            'Удаляем семнадцатый знак сразу после его ввода
ActiveCell.BackColor = &H8080FF 'это можно не брат в расчет
MsgBox "Не бывает в номере телефона более 11 чифр, или более 16 знаков", vbInformation, "ИНФОРМАЦИЯ"
.Text = Left(.Text, 15)
ActiveCell.BackColor = &HFFFFFF 'это можно не брат в расчет
        End Select
End With
End Sub
Что нас не убивает, то делает нас сильными!
Всё гениальное просто, всё простое гениально!
DMITRIY_78 вне форума Ответить с цитированием
Старый 17.01.2022, 20:34   #2
Elixi
Форумчанин
 
Регистрация: 10.05.2019
Сообщений: 163
По умолчанию

DMITRIY_78,
после ввода первого, второго ... десятого знака ничего не обрабатывается,
так-как событие Worksheet_Change вызывается только после ввода всей информации в ячейку,
то есть после нажатия клавиши ENTER
Elixi вне форума Ответить с цитированием
Старый 18.01.2022, 12:00   #3
DMITRIY_78
Форумчанин
 
Регистрация: 11.12.2018
Сообщений: 202
По умолчанию

Elixi, в том то и вопрос что у меня ни как не обрабатывается
Что нас не убивает, то делает нас сильными!
Всё гениальное просто, всё простое гениально!
DMITRIY_78 вне форума Ответить с цитированием
Старый 18.01.2022, 12:14   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

введите в ячейку текст, нажмите Ентер и пусть тогда отформатируется внешний вид.

или с помощью формата https://micro-solution.ru/excel/form...telefon-format
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 18.01.2022, 12:52   #5
DMITRIY_78
Форумчанин
 
Регистрация: 11.12.2018
Сообщений: 202
По умолчанию

Aleksandr H., спасибо!
Что нас не убивает, то делает нас сильными!
Всё гениальное просто, всё простое гениально!
DMITRIY_78 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверить, удовлетворяет ли структура текста заданному определению - C (СИ) Max00766 Общие вопросы C/C++ 1 09.04.2016 19:12
проверить существование треугольника, вывести длинну наибольшей из сторон VBA cutie_girl Microsoft Office Excel 4 28.06.2013 14:00
Узнать длинну массива Trust_357 Общие вопросы C/C++ 6 28.09.2011 15:38
Вычислить длинну текста нескольких строк... Nater Общие вопросы Delphi 3 16.06.2010 15:55
как проверить наличие определенного текста в строке jihot Общие вопросы Delphi 6 04.04.2010 18:40