Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Ограничение на ввод нулей вначале значений - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Ограничение на ввод нулей вначале значений (Макросы/Sub)
Ограничение на ввод нулей вначале значений
Сергей13 Дата: Воскресенье, 17.11.2019, 17:48 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 310
Репутация: -3 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте!
Ребята, создал ограничение ввода для определенных знаков, не зависимо от ввода текстовых или числовых данных
[vba]
Код
Private Sub Txb2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Запрет ввода точки и запятой
     Dim ThsStr As String
     Dim ZptStr As String
     ThsStr = "."
     ZptStr = ","
     If InStr(1, ThsStr, ChrW(KeyAscii)) > 0 Or InStr(1, ZptStr, ChrW(KeyAscii)) > 0 Then KeyAscii = 0
End Sub
[/vba]
можно ли как-то в данном коде ограничить ввод нулей вначале значений если вводятся чисто числовые данные.


Сообщение отредактировал Сергей13 - Воскресенье, 17.11.2019, 20:43
 
Ответить
СообщениеЗдравствуйте!
Ребята, создал ограничение ввода для определенных знаков, не зависимо от ввода текстовых или числовых данных
[vba]
Код
Private Sub Txb2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Запрет ввода точки и запятой
     Dim ThsStr As String
     Dim ZptStr As String
     ThsStr = "."
     ZptStr = ","
     If InStr(1, ThsStr, ChrW(KeyAscii)) > 0 Or InStr(1, ZptStr, ChrW(KeyAscii)) > 0 Then KeyAscii = 0
End Sub
[/vba]
можно ли как-то в данном коде ограничить ввод нулей вначале значений если вводятся чисто числовые данные.

Автор - Сергей13
Дата добавления - 17.11.2019 в 17:48
Pelena Дата: Воскресенье, 17.11.2019, 20:34 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 14887
Репутация: 3251 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Что значит "ограничить"? Запретить? Или ограничить количество?


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеЧто значит "ограничить"? Запретить? Или ограничить количество?

Автор - Pelena
Дата добавления - 17.11.2019 в 20:34
Сергей13 Дата: Воскресенье, 17.11.2019, 20:42 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 310
Репутация: -3 ±
Замечаний: 0% ±

Excel 2016
Pelena, Запретить!
 
Ответить
СообщениеPelena, Запретить!

Автор - Сергей13
Дата добавления - 17.11.2019 в 20:42
Pelena Дата: Воскресенье, 17.11.2019, 21:00 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 14887
Репутация: 3251 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Если правильно поняла
[vba]
Код
Private Sub Txb2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 44 Or KeyAscii = 46 Or Len(Txb2.Text) = 0 And KeyAscii = 48 Then KeyAscii = 0
End Sub
[/vba]


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеЕсли правильно поняла
[vba]
Код
Private Sub Txb2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 44 Or KeyAscii = 46 Or Len(Txb2.Text) = 0 And KeyAscii = 48 Then KeyAscii = 0
End Sub
[/vba]

Автор - Pelena
Дата добавления - 17.11.2019 в 21:00
Сергей13 Дата: Воскресенье, 17.11.2019, 21:43 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 310
Репутация: -3 ±
Замечаний: 0% ±

Excel 2016
Pelena, Правильно поняли, но все-таки при желании обойти ввод нулей возможно, тут походу предвидеть действие пользователя через vba невозможно.
Спасибо!
 
Ответить
СообщениеPelena, Правильно поняли, но все-таки при желании обойти ввод нулей возможно, тут походу предвидеть действие пользователя через vba невозможно.
Спасибо!

Автор - Сергей13
Дата добавления - 17.11.2019 в 21:43
Pelena Дата: Воскресенье, 17.11.2019, 21:49 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 14887
Репутация: 3251 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Может, стоит наличие ведущих нулей определять не в этом событии, а после обновления?


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеМожет, стоит наличие ведущих нулей определять не в этом событии, а после обновления?

Автор - Pelena
Дата добавления - 17.11.2019 в 21:49
Сергей13 Дата: Воскресенье, 17.11.2019, 22:12 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 310
Репутация: -3 ±
Замечаний: 0% ±

Excel 2016
Pelena, Не стоит усложнять. Пускай будет так.
Спасибо!
 
Ответить
СообщениеPelena, Не стоит усложнять. Пускай будет так.
Спасибо!

Автор - Сергей13
Дата добавления - 17.11.2019 в 22:12
krosav4ig Дата: Воскресенье, 17.11.2019, 22:58 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 2213
Репутация: 921 ±
Замечаний: 0% ±

Excel 2007,2010,2013
а может так
[vba]
Код
Private Sub Txb2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case 48
            If Len(Txb2) * Txb2.SelStart = 0 Then KeyAscii = 0
        Case 49 To 57
        Case Else
             KeyAscii = 0
    End Select
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Воскресенье, 17.11.2019, 23:22
 
Ответить
Сообщениеа может так
[vba]
Код
Private Sub Txb2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case 48
            If Len(Txb2) * Txb2.SelStart = 0 Then KeyAscii = 0
        Case 49 To 57
        Case Else
             KeyAscii = 0
    End Select
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 17.11.2019 в 22:58
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Ограничение на ввод нулей вначале значений (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2019 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!