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

Вход

Регистрация

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

 

= Мир MS Excel/Запретить ввод пробела - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Запретить ввод пробела (Макросы/Sub)
Запретить ввод пробела
Shaxislam Дата: Суббота, 14.05.2016, 22:11 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Как запретить ввода двух раз пробела в textbox
Подскажите пожалуйста, в чем ошибка. код не работает но подсчитает количество пробелов
[vba]
Код
myString = TextBox1
tempString = Split(myString, " ")
If UBound(tempString) > 2 Then KeyAscii = 0
[/vba]
 
Ответить
СообщениеКак запретить ввода двух раз пробела в textbox
Подскажите пожалуйста, в чем ошибка. код не работает но подсчитает количество пробелов
[vba]
Код
myString = TextBox1
tempString = Split(myString, " ")
If UBound(tempString) > 2 Then KeyAscii = 0
[/vba]

Автор - Shaxislam
Дата добавления - 14.05.2016 в 22:11
Karataev Дата: Суббота, 14.05.2016, 22:24 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
[vba]
Код
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 32 Then
        If Right(Me.TextBox1.Text, 1) = " " Then
            KeyAscii = 0
        End If
    End If
End Sub
[/vba]
 
Ответить
Сообщение[vba]
Код
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 32 Then
        If Right(Me.TextBox1.Text, 1) = " " Then
            KeyAscii = 0
        End If
    End If
End Sub
[/vba]

Автор - Karataev
Дата добавления - 14.05.2016 в 22:24
Shaxislam Дата: Суббота, 14.05.2016, 22:29 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
не получается
 
Ответить
Сообщениене получается

Автор - Shaxislam
Дата добавления - 14.05.2016 в 22:29
Karataev Дата: Суббота, 14.05.2016, 22:32 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
в этом файле работает
К сообщению приложен файл: form.xlsm (20.3 Kb)
 
Ответить
Сообщениев этом файле работает

Автор - Karataev
Дата добавления - 14.05.2016 в 22:32
Shaxislam Дата: Воскресенье, 15.05.2016, 20:04 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
это код вообще что делает, не запретить пробел
 
Ответить
Сообщениеэто код вообще что делает, не запретить пробел

Автор - Shaxislam
Дата добавления - 15.05.2016 в 20:04
Karataev Дата: Воскресенье, 15.05.2016, 20:07 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Файл в посте 4 запрещает ввод подряд двух пробелов.
 
Ответить
СообщениеФайл в посте 4 запрещает ввод подряд двух пробелов.

Автор - Karataev
Дата добавления - 15.05.2016 в 20:07
Shaxislam Дата: Воскресенье, 15.05.2016, 20:27 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Работает )) но мне не подряд а общем тексте ввод боле 2 пробел или я не правильно поставили вопрос, например:
Textbox ФИО (Александр" "Сергеевич" "Пушкин" " здесь конца текста запретит ввод третьего пробела, кто-то поставить пробел конца текста и макрос не работает)
 
Ответить
СообщениеРаботает )) но мне не подряд а общем тексте ввод боле 2 пробел или я не правильно поставили вопрос, например:
Textbox ФИО (Александр" "Сергеевич" "Пушкин" " здесь конца текста запретит ввод третьего пробела, кто-то поставить пробел конца текста и макрос не работает)

Автор - Shaxislam
Дата добавления - 15.05.2016 в 20:27
alex77755 Дата: Воскресенье, 15.05.2016, 20:28 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

[vba]
Код
Private Sub TextBox1_Change()
    TextBox1 = Replace(TextBox1.Text, "  ", " ")
End Sub
[/vba]


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщение[vba]
Код
Private Sub TextBox1_Change()
    TextBox1 = Replace(TextBox1.Text, "  ", " ")
End Sub
[/vba]

Автор - alex77755
Дата добавления - 15.05.2016 в 20:28
Shaxislam Дата: Воскресенье, 15.05.2016, 20:32 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
и это тоже запрещает ввод подряд двух пробелов
 
Ответить
Сообщениеи это тоже запрещает ввод подряд двух пробелов

Автор - Shaxislam
Дата добавления - 15.05.2016 в 20:32
alex77755 Дата: Воскресенье, 15.05.2016, 20:35 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

А так не разрешает вводить пробел после 3-го слова
[vba]
Код
Private Sub TextBox1_Change()
    TextBox1 = Replace(TextBox1.Text, "  ", " ")
    If UBound(Split(TextBox1.Text)) = 3 Then
        If Right(TextBox1.Text, 1) = " " Then TextBox1.Text = Left(TextBox1.Text, Len(TextBox1.Text) - 1)
    End If
End Sub
[/vba]


Могу помочь в VB6, VBA
Alex77755@mail.ru


Сообщение отредактировал alex77755 - Воскресенье, 15.05.2016, 20:36
 
Ответить
СообщениеА так не разрешает вводить пробел после 3-го слова
[vba]
Код
Private Sub TextBox1_Change()
    TextBox1 = Replace(TextBox1.Text, "  ", " ")
    If UBound(Split(TextBox1.Text)) = 3 Then
        If Right(TextBox1.Text, 1) = " " Then TextBox1.Text = Left(TextBox1.Text, Len(TextBox1.Text) - 1)
    End If
End Sub
[/vba]

Автор - alex77755
Дата добавления - 15.05.2016 в 20:35
Karataev Дата: Воскресенье, 15.05.2016, 20:45 | Сообщение № 11
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Запрет ввода пробела после третьего слова.
К сообщению приложен файл: form_2.xlsm (18.3 Kb)


Сообщение отредактировал Karataev - Воскресенье, 15.05.2016, 20:46
 
Ответить
СообщениеЗапрет ввода пробела после третьего слова.

Автор - Karataev
Дата добавления - 15.05.2016 в 20:45
Shaxislam Дата: Воскресенье, 15.05.2016, 20:58 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
работает супер +, огромное спасибо Karataev, и alex77755,
 
Ответить
Сообщениеработает супер +, огромное спасибо Karataev, и alex77755,

Автор - Shaxislam
Дата добавления - 15.05.2016 в 20:58
Alex_ST Дата: Вторник, 17.05.2016, 09:19 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
А не лучше ли не ограничиваться количеством слов, а просто применить к введённому тексту стандартную функцию листа СЖПРОБЕЛЫ, которая удалит ВСЕ лишние пробелы после окончания ввода?
Не помню точно, когда какое событие возникает, поэтому написал для обоих:
[vba]
Код
Private Sub TextBox1_Exit()
   Me.TextBox1.Text = Application.Trim(Me.TextBox1.Text)
End Sub

Private Sub TextBox1_LostFocus()
   Me.TextBox1.Text = Application.Trim(Me.TextBox1.Text)
End Sub
[/vba]Если не лень, то поставьте BreakPoint на обоих и выясните, кто из них вызывается.
Кажется (но не точно) Exit возникает у TextBox, размещённого на форме, а LostFocus - на листе.



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 17.05.2016, 09:24
 
Ответить
СообщениеА не лучше ли не ограничиваться количеством слов, а просто применить к введённому тексту стандартную функцию листа СЖПРОБЕЛЫ, которая удалит ВСЕ лишние пробелы после окончания ввода?
Не помню точно, когда какое событие возникает, поэтому написал для обоих:
[vba]
Код
Private Sub TextBox1_Exit()
   Me.TextBox1.Text = Application.Trim(Me.TextBox1.Text)
End Sub

Private Sub TextBox1_LostFocus()
   Me.TextBox1.Text = Application.Trim(Me.TextBox1.Text)
End Sub
[/vba]Если не лень, то поставьте BreakPoint на обоих и выясните, кто из них вызывается.
Кажется (но не точно) Exit возникает у TextBox, размещённого на форме, а LostFocus - на листе.

Автор - Alex_ST
Дата добавления - 17.05.2016 в 09:19
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Запретить ввод пробела (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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