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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2009, 10:53   #1
dsapa
Пользователь
 
Регистрация: 22.05.2008
Сообщений: 82
По умолчанию Как корректно написать строчку макроса If...Then ?

Здравствуйте!
Прошу помощи (слегка туплю).
Как в макросе прописать строчку условия ввода в ячейку трехзначного числа (именно трехзначного):

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.(здесь дописать код - если в ячейку забивается три знака) Then ...
End Sub

Просто я забыл, как в коде прописывается длина строки в ячейке.
А в хелпе не могу найти.
Спасибо
dsapa вне форума Ответить с цитированием
Старый 21.07.2009, 10:59   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Target Like "###" Then
        Application.EnableEvents = False: Target = "": Application.EnableEvents = True
        MsgBox "То, что Вы ввели в ячейку, не является 3-значным числом!"
    End If
    ' или так:
    'If Len(Target) <> 3 Then MsgBox "Ошибка", vbExclamation
End Sub
А вообще, для таких целей намного удобнее использовать встроенные возможности Excel. В Excel 2003 это пункт меню Данные - Проверка
EducatedFool вне форума Ответить с цитированием
Старый 21.07.2009, 11:11   #3
dsapa
Пользователь
 
Регистрация: 22.05.2008
Сообщений: 82
По умолчанию

Большое спасибо!
К сожалению, встроенные возможности не подходят, т.к. я выложил в своем вопросе не весь макрос, а его малую часть.
Не хочется париться с автофильтром, вот я и придумал - по вводу в ячейку нужного трехзначного числа все строки, не содержащие этого числа, скрываются, а в самой ячейке введенное мною число стирается, она (ячейка) опять активируется и я ввожу уже нужное мне двузначное число.
dsapa вне форума Ответить с цитированием
Старый 21.07.2009, 15:43   #4
dsapa
Пользователь
 
Регистрация: 22.05.2008
Сообщений: 82
По умолчанию

Возникла проблема:
при вводе в ячейку трехзначного числа без нулей - макрос работает.
А при наличии нуля или двух (в таких числах, как 009, 023) - дает сбой.
Формат ячеек - это не выход, так как после ввода трехзначного числа и поиска нужной строки мне необходимо забивать в ячейку одно- или двузначное число.
Помогите, как дать знать приложению, что при вводе трехзначного числа, нули - это тоже значащие цифры.
Спасибо.
dsapa вне форума Ответить с цитированием
Старый 21.07.2009, 19:53   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Формат ячейки текстовый
Подобные темы уже были на Форуме
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как корректно удалить драйвер печати? Stilet Операционные системы общие вопросы 4 22.04.2009 22:12
Как с поиощью hiew вставить в файл строчку, "раздвинуть" файл и вставить туда строчку? barand Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 28.06.2008 10:58
Как настроить IE чтоб корректно отображались Active X Stilet HTML и CSS 1 15.05.2008 22:45
Как корректно завершить цикл? Iren Microsoft Office Excel 4 02.11.2007 09:58
как корректно остановить цикл. Alar Общие вопросы Delphi 0 29.10.2006 10:42